
文章链接
专业课-操作系统-线程/进程-线程相关
面5笔5参考java相关知识,下列关于多线程说法正确的是
A.wait()方法和sleep()方法都会使当前线程堵塞并释放所持有的锁
B.哲学家就餐场景可能会发生死锁
C.继承Thread类与实现Runnable接口都可以实现多线程
D.StringBuilder是线程安全的,可在多线程环境下使用
正确答案是 B、C
sleep()方法是线程类Thread的静态方法,调用该方法使线程暂停执行指定的时间,将CPU让给其他线程,并不释放所持有的对象锁,休眠时间结束后线程回到就绪状态。
wait()是Object类的方法,调用wait()方法,线程释放所持有的对象锁,进入等待池中,只有调用notify()方法(或者notifyAll()方法),才能唤醒等待池中的线程进入等锁池。
若线程获得对象的锁,则线程重新进入就绪状态。