我一直在寻找多线程教程和那些特定于同步的教程,但我一直无法实现我需要的东西。
它展示了我的程序中发生的同步。
基本上,我有一个类从其他类继承了一些函数,这些函数需要同步以便两个线程不会同时修改对象(没有数据损坏)。
我以前在没有同步关键字的情况下实现了代码,所以我可以设法看到数据损坏的发生。
EditOptionsMethods e1;
int threadNo;
public EditOptions() {
e1 = new BuildAuto();
run();
}
public void run() {
System.out.println("Thread running.");
switch (threadNo) {
case 0:
break;
case 1:
break;
}
}
public void setOptions(String optSetName1, String desiredOption1, String optSetName2, String desiredOption2) {
e1.s_Option(optSetName1, desiredOption1); //
e1.s_Option(optSetName2, desiredOption2);
}
Run Code Online (Sandbox Code Playgroud)
s_Option 必须同步,因此两个线程都不会发生。我首先将在没有同步的情况下使用它,然后我可以初始化一个循环(具有高索引量,假设为 1000,然后我用第一个线程添加,并用第二个线程减去)以查看发生的损坏作为示例。
但我没有找到一种方式来展示这一点。
如果有人知道我如何实现这一点,那就太棒了。
java parallel-processing multithreading synchronization thread-safety