并发编程2
一、sleep和wait的区别
1.sleep方法是属于Thread类,wait方法属于Object对象。
2.sleep方法挂起线程重新等待cpu但是不释放锁。wait方法挂起的线程会释放持有的锁。
3.sleep挂起线程等待时间结束后会参与cpu的竞争,wait方法挂起线程需要等待notify()/notifyAll()唤醒后才能参与锁的竞争。
二、satrt与run的区别
1.start方法真正的启动线程,让线程从new状态进入runnable状态。run方法是线程的普通方法,在线程启动后会由新创建的线程执行该方法。也可以当做普通方法直接调用。
三、java守护线程Daemon
1.守护线程的优先级较低。
2.可以在线程启动之前设置线程的Daemon属性,将线程设置为守护线程。线程启动后不支持设置该值。
3.在Daemon线程中创建的线程也是Daemon线程。
4.Daemon线程与系统同生共死,当系统的全部用户线程终止后守护线程自动终止。

浙公网安备 33010602011771号