用于显示java synchronized块如何工作的示例代码

Cai*_*der 23 java thread-synchronization

我正在学习java多线程,我发现很难理解synchronized块的工作原理:

 synchronized(Object o){
     // do something
    }
Run Code Online (Sandbox Code Playgroud)

请给出一些示例代码,可以显示对象o被阻止.根据我的理解,在同步块被执行时,将阻止从另一个线程访问对象o?

Luc*_*fer 11

Java中的同步是一个重要的概念,因为Java是一种多线程语言,其中多个线程并行运行以完成程序执行.在多线程环境中,java对象的同步或java类的同步变得极为重要.使用Java关键字"synchronized"和"volatile"可以实现Java中的同步.Java中共享对象的并发访问引入了一种错误:线程干扰和内存一致性错误,为了避免这些错误,您需要正确地将java对象同步到允许对两个线程进行关键部分的互斥访问.

阅读更多:http://javarevisited.blogspot.com/2011/04/synchronization-in-java-synchronized.html#ixzz2LOWwnCjH

请看这个例子