并发程序设计需要掌握的知识点

有朋友问过我,怎样学习多线程编程,我总结了一下,列了一下知识点:

1、synchronized
2、Runnable、Thread、Thread.sleep、Thread.yield、Thread.join
3、wait、notify、notifyAll(注意其中锁的获得和释放)
4、Mutex、Semaphore
5、BlockingQueue (十分有用,必须掌握)
6、ThreadPool
7、ExecutorService
8、Future (十分重要,必须掌握)
9、ReadWriteLock
10、Lock、condition。这是很多线程库都包含的内容,概念和synchronized、object.wait、object.notify那套咚咚类似,不过是通过库的方式展现,更加灵活。
、死锁、哲学家就餐问题
12、TSL汇编指令、JDK 1.5中的compareAndSet(java.uti.concurrent.atomic)、Windows API中的InterLock
13、工作线程+请求队列的应用
14、用户线程、内核线程,fork时用户线程问题 (很多Unix和早期的Linux不支持内核线程)
15、Windows Thread API,特色API:WaitForMultiObject


相关的书籍有:
《JAVA多线程设计模式》 结城浩 中国铁道出版社 (这本书讲得很清楚形象,十分适合初学者阅读)
JAVA并发编程—设计原则与模式(第二版) Doug Lea 中国电力出版社 (不可以不看,同时要配合阅读util.concurrent包的源码或者JDK 1.5的源码)
《JAVA线程编程》 Paul Hyde 人民邮电出版社 (我觉得这本书也不错)
《POSIX多线程程序设计》  David R.Butenhof  中国电力出版社
《WINDOWS核心编程》  Jeffrey Richter  机械工业出版社
《UNIX系统编程》 Kay A.Robbins, Steve Robbins  机械工业出版社
《现代操作系统》 Andrew S.Tanenbaum 机械工业出版社
《UNIX 网络编程(第二版)第2卷:进程间通信》W.Richard Stevens 北京科海电子出版社

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值