public class Signal2NoiseRatio
{
public ImagePlus SingleSNR(ImagePlus imagePlus) throws InterruptedException
{
new Thread()
{
@Override public void run()
{
for (int i = 0; i <= 1; i++)
{
System.out.println("in queue"+i);
}
synchronized( this )
{
this.notify();
}
}
}.start();
synchronized (this)
{
this.wait();
}
return imagePlusToProcess;
}
}
notify()
未达到wait()
。
这里有什么问题?
对我来说,必须实现这一方法中的两种同步方法。
主线程执行一个在其中显示图像的帧。 wait()
方法是否有可能将框架引导到白色窗口?
答案 0 :(得分:2)
this
方法中的 SingleSNR
和被覆盖的this
方法中的run
不是同一个对象(run
内,this
是指到Thread
的匿名子类。您需要确保通知wait
的同一个对象,该对象可用Signal2NoiseRatio.this
:
@Override public void run()
{
for (int i = 0; i <= 1; i++)
{
System.out.println("in queue"+i);
}
synchronized( Signal2NoiseRatio.this )
{
Signal2NoiseRatio.this.notify();
}
}
答案 1 :(得分:0)
两个“这个”不一样,一个是Signal2NoiseRatio,一个是Thread