线程
线程是一个程序内部的顺序控制流
线程与进程的区别:
进程有独立的代码和数据空间,进程间切换会有较大的开销
线程是轻量的,同一类线程共享代码和数据空间,线程切换的开销小
多进程与多线程
多进程:在操作系统中能同时运行多个任务(程序)
多线程:在同一应用程序中有多个顺序流同时执行
开启线程方法:
1.继承Thread类,重写run方法
MyThread mt = new Mythread();
mt.start();
2.implenmnts Runnable接口
MyRunnable mr = new MyRunnable();
Thread t = new Thread(mr);
t.start();
部分方法介绍:
t.join() 子线程t运行后再运行主线程,这就相当于方法调用
yield(); 让出cpu,让其他程序执行
线程优先级:1————10,默认是5
t.setPriority();
线程同步:
方法中:
synchronized(this){
语句
}
锁定括号内语句执行
或者:
public synchronized int methodname(){};
锁定当前方法内对象等
wait与notify:
this.wait() 类里面的wait方法
this.notify()类里面的唤醒服务
wait与sleep
wait()与sleep()区别:
wait是Object类方法,sleep是Thread类的方法
wait可以让线程休眠,此时放开锁
sleep可以让线程休眠,此时依然拥有锁