相信大部分开发人员,或多或少都看过或写过并发编程的代码。并发关键字除了Synchronized,还有另一大分支Atomic。如果大家没听过没用过先看基础篇,如果听过用过,请滑至底部看进阶篇,深入源码分析。
提出问题:int线程安全吗?看过Synchronized相关文章的小伙伴应该知道其是不安全的,再次用代码应验下其不安全性:
public class testInt { static int number = 0; public static void main(String[] args) throws Exception { Runnable runnable = new Runnable() { @Override public void run() { for (int i = 0; i < 100000; i++) { number = number+1; } } }; Thread t1 = new Thread(runnable); t1.start(); Thread t2 = new Thread(runnable); t2.start(); t1.join(); t2.join(); System.out.println("number:" + number); } }