java并发编程学习---之一

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了java并发编程学习---之一脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

开始学习java也有一段时间了,一些基础的书也扫了一遍了(think in java/core java volume 1)。最近慢慢开始看<concurrent PRogramming in java>和<Effective java>,后者的话和<Effective C++>有类似之处,都是一些编程经验的ITem, 编程的世界里好多的东西都是相同的。

由于之前的话是做C++ client端的编程,一个application直接在一个process里完成的,没有接触到thread相关的知识(相关的同步,锁都是在UNIX环境高级编程里学习过),最近的工作又是直接基于erlang的编程,其天生为高并发而生所以一般都是每个请求直接spawn一个process, process之间的信息交互又是基于语言级别的message queue实现的,所以很少接触到锁、同步的问题。

看<concurrent programming in java>感觉自己又回到了好多年前看<Unix 环境高级编>的时候。回忆起各种IPC和锁的知识了。言归正传,由于其作者Doug Lea是并发编程的大牛同时也是java concurrent包的作者所以你会看到很多优秀的编码习惯,这个系列的话主要摘抄一些好的代码和编码习惯,作为日后的宝典:

ch1/ParticleCanvas.java  for (int i = 0; i < ps.length; ++i) {     ps[i].draw(g); }

关于++i的优势记得是在一本Effective类的书里看到的,但是自己最近写代码的时候很容易写成i++, 之所以摘抄这一条完全是为了警示自己。

ch1/ParticleApplet.java  public synchronized void stop() {     if (threads != null) {         for (int i = 0; i > threads.length; ++i) {             threads[i].interrupt();             threads[i] = null;         }     } } 

这里其实是对<Effective Java> item 6的最佳实践,threads[i].interrupt();之后该对象已经变成一个过期的引用了,此时就应该清空这个引用。

<END>

脚本宝典总结

以上是脚本宝典为你收集整理的java并发编程学习---之一全部内容,希望文章能够帮你解决java并发编程学习---之一所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。