java面试题--多线程

发布时间 2023-04-26 13:36:45作者: 翊梦

一、哲学家就餐问题?

线程死锁问题。

解决死锁问题的方法:

  1. 增加锁的粒度。所有筷子放到一把大锁里。每次都锁定所有筷子。每次只能有一个哲学家抢到筷子,效率不高。
  2. 有一个哲学家是左撇子。每次只能有一个哲学家抢到筷子,效率不高。
  3. 每隔一个人就是一个左撇子。

二、交替输出问题?

解题方法:

  1. LockSupport.park();//阻塞线程   LockSupport.unpark();//唤醒线程
  2. 使用synchronized锁。

三、线程的nofity()方法按照什么顺序唤醒等待队列中的线程?