之前也发过几篇关于多线程的文章,线程(生产者-消费者问题)线程使用方法总结

今天项目中用到了,弄得也是头疼,很多东西需要考虑。总的来说,这东西需要对多线程深入了解,不然一不小心就跌坑头!!
总结在项目开发中需注意的问题
平常使用中注意Map、List、Set集合线程安全

ArrayBlockingQueue使用手册:

  • put(),阻塞
  • take(),阻塞
  • offer(),不阻塞
  • peek(),不阻塞,不remove当前元素
  • poll(),不阻塞,要remove当前元素

wait和sleep比较

  1. sleep:sleep(long millis),调用sleep方法后,当前线程进入休眠期,暂停执行,但该线程继续拥有监视资源的所有权。到达休眠时间后线程将继续执行,直到完成。若在休眠期另一线程中断该线程,则该线程退出。
  2. wait:wait(),wait(long timeout),wait(long timeout, long nanos),调用wait方法后,该线程放弃监视资源的所有权进入等待状态;
  3. wait():等待有其它的线程调用notify()或notifyAll()进入调度状态,与其它线程共同争夺监视。wait()相当于wait(0),wait(0, 0)。
  4. wait(long timeout):当其它线程调用notify()或notifyAll(),或时间到达timeout亳秒,或有其它某线程中断该线程,则该线程进入调度状态。
文章目录
  1. 1. 之前也发过几篇关于多线程的文章,线程(生产者-消费者问题)、线程使用方法总结
  • ArrayBlockingQueue使用手册:
  • wait和sleep比较
  • 不止于此

    IT技术分享博客