【发布时间】:2015-03-19 21:28:18
【问题描述】:
我在 java 中使用 synchronized 关键字时遇到了一些麻烦。我确实了解线程锁定方法或代码块的部分,但我不知道如何在以下示例中使用它。
我有 2 个不同的线程(线程 A 和 Thead B)和一个 Class1,其中包含一个包含 Class2 实例的列表。 threadA 调用的 Class1.methodA() 修改列表中的信息。 threadB 调用的 Class1.methodB() 只使用列表中的信息。
我的结论是,当线程 A 正在修改列表中的数据而线程 B 正在使用它时,我的程序中就会出现问题。
我是否应该在 Class1 中创建一个同步方法,而不是调用 MethodA 或 MethodB(对我来说似乎是多余的)。或者线程能否只锁定正在修改的 Class2 的特定实例?
我很抱歉英语不好。
【问题讨论】:
标签: java multithreading synchronization