2016年9月28日

设计线程安全的程序

摘要: 在上一篇博文(线程安全性:num++操作为什么也会出问题?)中,举了一个简单的num++操作导致线程不安全的例子: 当多个线程同时访问Tool类的plus()方法时,它产生了预期之外的结果,num++看似是一步操作,但其实它包含了多个操作:读取num,将num加一,将计算结果写入num,当多个线程同 阅读全文

posted @ 2016-09-28 17:22 伪善者ql 阅读(345) 评论(0) 推荐(0) 编辑

线程安全性:num++操作为什么也会出问题?

摘要: 线程的安全性可能是非常复杂的,在没有充足同步的情况下,由于多个线程中的操作执行顺序是不可预测的,甚至会产生奇怪的结果(非预期的)。下面的Tools工具类的plus方法会使计数加一,为了方便,这里的num和plus()都是static的: 我们再编写一个任务,调用这个plus()方法并输出计数: 最后 阅读全文

posted @ 2016-09-28 14:28 伪善者ql 阅读(1674) 评论(4) 推荐(1) 编辑

导航