多进程:在系统中能(同时)运行多个任务(程序)
多线程:在同一应用程序中游多个顺序流(同时)执行
线程的执行过程
创建线程的方法:
方式一:
定义一个线程类,它集成类Thread并重写其中的方法run(),方法run()成为线程体;由于Java只支持单继承,用这种方法定义的类不能再继承其他类。
class FirstThread extends Thread{
public void run(){
for(int i = 0; i<100 ; i++){
System.out.println("FirstThread--->" + i);}}
这里不能调用run()方法,而应该是调用Thread类的start()方法,如果调用的是run()方法,则此程序编变成了单线程程序,按顺序先执行run()方法中的内容,然后再执行主函数中的内容。class Test{ public static void main(String agrs[]){ FirstThread ft = new FirstTrhead(); ft.start(); } }
方式二:
JDK提供一个实现接口Runnable的类作为线程的目标对象,在初始化一个Thread类或者Thread子类的线程对象时,把目标对象传递给这个线程实例,有该目标对象提供线程体。
class RunnableImpl implements Runnable{ public void run(){ for(int i = 0 ; i<100 ; i++){ System.out.print("RunnableImpl---->" + i); } } }
class Test{ public static void main(String args[]){ //生成一个Runnable接口实现类的对象 RunnableIpml ri = new RunnableIpml(); //生成一个Thread对象,并将Runnable接口实现类的对象作为参数传递给该Thread对象 Thread t = new Thread(ri); t.start(); } }
线程的简单控制方法:中断线程: Thread.sleep() 和 Thread.yield()
设置线程的优先级: getPriority() 和 setPriority()
线程同步:
1.多线程数据安全
2.同步线程的方法
synchronized()