相关疑难解决方法(0)

'同步'是什么意思?

我对synchronized关键字的用法和重要性有一些疑问.

  • synchronized关键字有什么意义?
  • 方法何时应该synchronized
  • 这在编程和逻辑上意味着什么?

java multithreading synchronized keyword

958
推荐指数
12
解决办法
48万
查看次数

在java中使用wait()和notify()的简单方案

我是否可以获得一个完整的简单场景,即教程,建议如何使用它,特别是使用队列?

java notify wait

175
推荐指数
4
解决办法
21万
查看次数

理解wait()和notify()的必要性

我试图通过使用wait()notify()访问共享资源或依赖其状态来理解实现线程的必​​要性.

我看到的想法是监视对象并等待它们的可用性并在使用后释放它们以使它们可用于其他线程/方法,但为什么这些方法是必要的而不是仅仅将相关对象声明为静态volatile以便其他线程在不调用这些方法的情况下了解状态的变化?

例如

在一家餐厅,有2名厨师.其中一位厨师是一位优秀的厨师(更好的烹饪品质,......)并带有布尔值isGoodCook = true,而第二位厨师则是一名厨师并带有布尔值isGoodCook = false.

一个厨师只有一次可以做饭的设备.糟糕的厨师会在特定的时间内做饭(=烹饪时间),而优秀的厨师偶尔会来厨房来接管糟糕的厨师做饭的任务.这位优秀的厨师在他的烹饪过程中永远不会被打断,并且一旦开始他就会为他的整个烹饪时间做饭.

(坏厨师停止烹饪,只要好厨师做饭的一部分(=烹饪时间的好厨师)).

在好厨师停止做饭之后,坏厨师必须再次进行准备饭菜的任务.

private boolean cooking; //is equipment used at the moment
private boolean isGoodCook;
private boolean cookingDesire; //indicating to chef to stop cooking
private int cookingTime;


public CookingTask(boolean isGoodCook, int cookingTime)
{
    this.isGoodCook = isGoodCook;
    this.cookingTime = cookingTime;
}

public void run()
{  
    if(isGoodCook)
    {
        //notify actual cook to stop cooking
        cookingDesire = true; 
    }
    //wait til equipment to cook
    //is …
Run Code Online (Sandbox Code Playgroud)

java multithreading

7
推荐指数
1
解决办法
623
查看次数

当前线程不是所有者异常

在我的应用程序中,我正在使用运行批处理文件的代码,在执行它时我收到一个异常,即当前线程不是所有者。这里要提一下,我的应用是基于eclipse插件开发的。以下是我的代码,请查看并找出问题以帮助我..

/*.......any code.........*/
try
{
    Runtime runtime = Runtime.getRuntime();
    String cmd = new String(C:\\abc.bat);
    process = runtime.exec("\"" + cmd + "\"");

    process.wait();

}
catch (Exception e)
{
    e.printStackTrace();
}

/***********any code**************/
Run Code Online (Sandbox Code Playgroud)

java multithreading runtime

3
推荐指数
1
解决办法
1万
查看次数

multiThreading加入和等待之间的区别,通知

我还没有工作multithreading,加入和等待有什么区别,通知方法?差异仅限于获取lock和禁止其他人threads访问它或是否有其他用例?

为什么我应该去waitnotifymultithreading何时join可用于完成thread执行?

如果提供了任何实时示例,将会很有帮助

java multithreading java-threads

3
推荐指数
2
解决办法
5356
查看次数