什么是多线程:多个能独立同时运行的代码,
方法:Thread,Runnable
同步:Synchronized代码块,Synchronized函数 同步共享数据。
前提:有2个以上的线程,同一把锁
好处:解决了安全问题,坏处:消耗了资源
1.哪些代码需要多线程执行
2.明确共享数据
3.多线程代码中哪些是操作共享数据的。
Synchronized函数要注意要将操作共享数据的代码独立出来在Synchronized
Synchronized函数 用的锁匙this
Synchronized静态函数 用的锁匙class
进程间的通讯:操作同一共享数据,但操作类型不一样。
wait 释放锁 sleep 不释放锁 notify唤醒wait
wait notify 只能由持有锁的对象来调用
jdk1.5中使用了 Lock类 Condition对象 来替换Synchronized 和 object
守护线程:即后台线程,当前台线程都结束后自动结束
join() 在哪个线程中加入的,那个线程就跪,当执行完后才继续 |
|