我有线程的任务,我不能让线程进入忙等待状态.我如何知道线程是处于阻塞状态还是处于繁忙等待状态?有没有检查它的命令?
在程序中我有2个矩阵,我需要转换它们.所以我有一个转换线程,代码如下:
transformThread transformThreadFirst = new transformThread(firstMat, n);
transformThread transformThreadSecond = new transformThread(secondMat, n);
transformThreadFirst.start();
transformThreadSecond.start();
try
{
transformThreadFirst.join();
transformThreadSecond.join();
}
catch(InterruptedException e)
{
}
Run Code Online (Sandbox Code Playgroud)
任何线程都将处于忙碌状态等待还是可以的?或者你有更好的解决方案?同样在transformThread的运行中我不使用任何yield,只有2 for循环,就是它,只是转换动作..
忙碌的等待是反复做的事情,直到另一个操作结束.像这样的东西:
// The next line will be called many many times
// before the other thread finishes
while (otherThread.getState() == Thread.State.RUNNABLE) {}
Run Code Online (Sandbox Code Playgroud)
所以,你的代码是不是忙等待,当前线程将被阻塞,直到transformThreadFirst完成,然后阻塞,直到transformThreadSecond完成.