Java线程等待和监视器布尔

时间:2018-02-07 21:09:10

标签: java multithreading thread-safety blocking

我有一个项目,我正在处理多线程,我正在努力了解如何实现这样的目标。

该程序代表一个厨房,我有一个烤箱,我想运行X的时间,我希望线程阻止X的时间量,并在块结束时,返回是否菜完全煮熟了(烤箱是否在整个X时间内都打开了?)

我遇到的问题是,当我的线程阻塞时,我的布尔值可以被打开并重新打开,我无法捕获它,只是结束结果。

我可以使用Java中的某些内容,这样我就可以在线程上阻塞,直到时间结束或布尔值发生变化?

我目前的代码如下:

public boolean cookFor(int minutes)
{
    //Milliseconds of block should be relative to temperature
    int milliseconds  = (minutes * 100);
    try
    {
        //Block thread for milliseconds time
        Thread.sleep(milliseconds);
    }
    catch (InterruptedException e)
    {
    }
    //Status indicates if Oven is On or Off
    return status;
}

0 个答案:

没有答案