多线程
renyaning1234
这个作者很懒,什么都没留下…
展开
-
CopyOnWriteArrayList的使用
除了加锁外,其实还有一种方式可以防止并发修改异常,这就是将读写分离技术(不是数据库上的)。先回顾一下一个常识:1、JAVA中“=”操作只是将引用和某个对象关联,假如同时有一个线程将引用指向另外一个对象,一个线程获取这个引用指向的对象,那么他们之间不会发生ConcurrentModificationException,他们是在虚拟机层面阻塞的,而且速度非常快,几乎不需要CPU时间。2、...原创 2013-04-17 16:15:00 · 122 阅读 · 0 评论 -
SimpleDateFormat不是线程安全
java.text.SimpleDateFormat并不是线程安全的,JDK1.4之前的javadoc 都忽略提及这一点。 很多开发者错误的创建并使用了它,这些程序在大负载下容易引发错误结果。 最后指明,如果一个类没有明确指明,就不要假设它是线程安全的。...原创 2013-04-17 16:44:13 · 118 阅读 · 0 评论 -
迭代过程中的线程安全
对Collection进行迭代的标准方法是使用Iterater,无论显示的使用还是for-eache与否,当其他线程可能并发修改容器时,需要在迭代器具对容器加锁。 对于for-each语法,javac生成的代码内在的使用一个Iterator,调用hasNext和next对List进行迭代。在进行迭代时,当容器察觉到在迭代开始后被修改,会抛出一个未检查的ConcurrentMo...原创 2013-04-17 17:58:24 · 300 阅读 · 0 评论