Java Eclipse中的多线程调试
我有一个Java程序,它创建两个线程,每个线程执行相同的代码(相同的run() 我的第一个线程1在某个监视器上执行wait(),并被挂起,直到第二个线程Thread2在同一监视器上调用notify 我的主要想法是:Java Eclipse中的多线程调试,java,eclipse,multithreading,Java,Eclipse,Multithreading,我有一个Java程序,它创建两个线程,每个线程执行相同的代码(相同的run() 我的第一个线程1在某个监视器上执行wait(),并被挂起,直到第二个线程Thread2在同一监视器上调用notify 我的主要想法是: { // Create threads GameOfLifeThread[][] threads = new GameOfLifeThread[vSplit][hSplit]; for(in
{
// Create threads
GameOfLifeThread[][] threads = new GameOfLifeThread[vSplit][hSplit];
for(int i=0; i<vSplit; i++){
for(int j=0; j<hSplit; j++){
threads[i][j] = new GameOfLifeThread(initalField, ...);
}
}
// Run threads
for(int i=0; i<vSplit; i++){
for(int j=0; j<hSplit; j++){
threads[i][j].run();
}
}
return ...;
}
{
...
synchronized (bordersReadyForRead) {
...
bordersReadyForRead.wait();
}
...
}
主线程继续执行创建的第一个线程的run(),并等待。不知什么原因,第二个线程根本没有启动
这个问题的原因是什么
提前感谢您。以“开始”而不是“运行”开始您的线程
发生的事情是“run”只是调用您的run方法,所以它会转到块并等待另一个线程。如果使用“开始”,则会启动一个新线程,程序(可能)会按预期工作。使用“开始”而不是“运行”启动线程
发生的事情是“run”只是调用您的run方法,所以它会转到块并等待另一个线程。如果使用“开始”,则会启动一个新线程,程序(可能)会按预期工作。使用“开始”而不是“运行”启动线程
发生的事情是“run”只是调用您的run方法,所以它会转到块并等待另一个线程。如果使用“开始”,则会启动一个新线程,程序(可能)会按预期工作。使用“开始”而不是“运行”启动线程
发生的事情是“run”只是调用您的run方法,所以它会转到块并等待另一个线程。如果您使用“开始”,则会启动一个新线程,您的程序(可能)会按预期工作。您的回答非常有用。非常感谢。你的回答很有帮助。非常感谢。你的回答很有帮助。非常感谢。你的回答很有帮助。非常感谢。