繁体   English   中英

什么是Java中的线程同步?

[英]what is synchronization of thread in java?

什么是Java中的线程同步? 详细给出任何例子

看看有关同步的Java教程

在多线程程序中,程序的许多部分通常需要原子运行(就像它是单个操作一样)。 这些通常称为关键区域,并使用互斥(互斥)范例进行保护。 Java中的synchronized关键字是提供互斥的一种方法。

考虑代码:

synchronized(lockObject) {
  //critical code
}

在上面的代码中,一次只能进入一个同步块,只要不更改变量lockObject引用的对象lockObject 这样可以确保在同步块内执行的代码仅由单个线程执行。

遍历集合时,通常需要锁定的示例。 很少有Java Collection实现提供线程安全的迭代。 创建线程安全迭代的基本方法是使用该集合上的同步块来保护对该集合的每次访问。

例如:

synchronized(myCollection) {
  myCollection.add(item);
}

synchronized(myCollection) {
  myCollection.remove(item);
}

synchronized(myCollection) {
  for(Object item:myCollection){
     System.out.println(item);
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM