1.sleep是线程类Thread的方法,会使当前正在运行的线程暂停指定的时间,让出执行机会,
然后cpu去执行其他的线程,指定时间结束,cpu才会回到该线程上继续向下运行。如果当
前线程进入了同步锁 sleep方法也不会释放锁,虽然当前进程让出了cpu,但其它被同步锁
锁住的进程也拿不到锁而执行。这里强调是两个或多个线程用的是同一个对象的同步锁。
2.wait是Object类的方法,会使当前进程让出同步锁,其他正在等到此锁的线程可以得到同步
锁并去运行只有其他进程调用了notify()的方法才会唤醒用过wait方法的进程,等到该线程
notify()方法后的代码执行完后才会释放锁,而用过wait方法的进程可以参与竞争得到锁后
程序继续运行。
线程sleep 与 wait 的区别?
最新推荐文章于 2022-11-04 09:02:01 发布