我是multiThreading的新手。我有一个列表,由所有线程引用。在某些情况下,我希望使用数据库中的值更新列表。更新可能发生在任何这些线程中。如何确保在列表更新时,循环遍历列表中所有项目的所有线程都会收到他们读取的列表的更新?
答案 0 :(得分:1)
并发编程中最常见的情况之一发生在多个时 执行线程共享资源。在并发应用程序中,多个是正常的 线程读取或写入相同的数据或访问相同的文件或数据库连接。 这些共享资源可能会引发错误情况或数据不一致,我们必须这样做 实施机制以避免这些错误。 这些问题的解决方案伴随着关键部分的概念。关键部分 是一个访问共享资源的代码块,不能由多个执行 线程在同一时间。 实现关键部分,Java(以及几乎所有编程 语言)提供同步机制
Java语言提供的同步机制:
关键字synchronized
Lock接口及其实现
在您写入列表的位置使方法同步,以便只有一个线程可以更新列表。
synchronized void updateList(){
//your code here
}