同步的作用:
- 提供互斥访问
- 提供线程之间的可靠通信
大家看下面的代码:
public class StopThreadDemo {
// no synchronize or volatile
private static boolean shouldStop;
public static void main(String[] args) throws InterruptedException {
Thread firstThread = new Thread(new Runnable() {
public void run() {
int counter = 0;
while (!shouldStop) {
counter++;
System.out.println(counter);
}
}
});
firstThread.start();
TimeUnit.SECONDS.sleep(1);
shouldStop = true;
}
}
在某些环境下后台线程(firstThread)并没有在运行一秒左右后正确的停止(某些环境下也能正常停止比如eclipse + jdk 1.6_16) 但是更加安全的做法是是用volitale或者同步shouldStop的读写 操作,只有这样我们才能保证firstThread 收到了should stop it !的请求。
我们应该学习和考虑使用java currennt util package中已经提供的功能比如atomicLong .... etc 它能帮助我们写出更加安全的代码![]()
本文通过一个简单的Java示例探讨了同步机制的重要性,特别是针对线程安全问题。解释了如何使用volatile关键字或同步代码块来确保多线程环境中变量的正确更新,并强调了利用Java并发工具包中的原子类来编写更安全代码的方法。

被折叠的 条评论
为什么被折叠?



