摘要: 一个没有并发控制的计数器:public class Counter implements Runnable { private static int count; public void run() { System.out.println(Thread.currentThread().getName() + ":" + (++count)); } public static void main(String[] args){ Counter counter = new Counter(); Thread t1 = new Thread(counter); Thread t 阅读全文
posted @ 2012-11-20 16:07 心意合一 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 竞态条件(Race Condition):计算的正确性取决于多个线程的交替执行时序时,就会发生竞态条件。最常见的竞态条件为:一,先检测后执行。执行依赖于检测的结果,而检测结果依赖于多个线程的执行时序,而多个线程的执行时序通常情况下是不固定不可判断的,从而导致执行结果出现各种问题。对于main线程,如果文件a不存在,则创建文件a,但是在判断文件a不存在之后,Task线程创建了文件a,这时候先前的判断结果已经失效,(main线程的执行依赖了一个错误的判断结果)此时文件a已经存在了,但是main线程还是会继续创建文件a,导致Task线程创建的文件a被覆盖、文件中的内容丢失等等问题。多线程环境中对同一 阅读全文
posted @ 2012-11-20 10:19 心意合一 阅读(151) 评论(0) 推荐(0) 编辑