Java等待通知方法使用同步关键字

回声代码

我需要有人为我简化Java中的wait notify方法。我已经查看了大约200多个站点,但仍然不了解。

我正在一个需要一个线程等待直到从另一个线程调用notify的程序上...

class mainClass{
 public static void main(String args[])throws Exception{
      Thread t1 = new Thread(new Runnable(){
           public void run(){
           //code inside to make thread t1 wait untill some other thread
           //calls notify on thread t1?
           }
      });
      t1.start();


      synchronized(t1){
           //main thread calling wait on thread t1?
           t1.wait();
      }



      new Thread(new Runnable(){
           public void run(){
                try{
                     synchronized(t1){
                          t1.notify() //?????
                     }
                }catch(Exception e1){}
           }
      }).start();
 }
}
PJ范宁

等待需要在第一个Runnable中发生,并且您需要有权访问Object实例才能等待,因此t1 Thread实例将无法工作。在这段代码中,我创建了一个单独的锁对象。

public static void main(String[] args) {
    final Object lock = new Object();
    new Thread(new Runnable() {
        @Override
        public void run() {
            synchronized(lock) {
                try {
                    lock.wait();
                    System.out.println("lock released");
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }).start();
    System.out.println("before sleep");
    try {
        Thread.sleep(1000);
        System.out.println("before notify");
        synchronized(lock) {
            lock.notify();
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

使用线程通知可能很难测试。我建议使用像Akka这样的基于消息的方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java等待通知方法使用同步关键字

来自分类Dev

Java同步等待和通知方法

来自分类Dev

Redis在上使用同步/等待关键字

来自分类Dev

在多线程中使用等待和通知方法

来自分类Dev

Java线程同步-同步关键字的放置

来自分类Dev

Dart等待关键字

来自分类Dev

堆叠等待关键字

来自分类Dev

同步关键字和实例方法上的锁

来自分类Dev

同步关键字如何在Java中起作用?

来自分类Dev

套接字断开通知方法

来自分类Dev

使用反射从功能中删除同步的关键字

来自分类Dev

使用反射从功能中删除同步的关键字

来自分类Dev

如何在本地反应上使用等待关键字?

来自分类Dev

使用异步和等待关键字的好处

来自分类Dev

在方法中使用“self”关键字

来自分类Dev

正确使用Java“ assert”关键字

来自分类Dev

同步关键字不起作用

来自分类Dev

等待关键字阻止主线程

来自分类Dev

为什么在同步之前使用 void 关键字会在 Java 中引发错误,但反向工作正常?

来自分类Dev

PrintWriter等待和通知方法做什么?

来自分类Dev

phonegap通知方法仍使用webview警报

来自分类Dev

Java中的关键字“ of”

来自分类Dev

从回调方法获取变量而不在Java中使用static关键字

来自分类Dev

如何使用IN关键字?

来自分类Dev

使用IN关键字查询

来自分类Dev

使用或过滤关键字

来自分类Dev

JavaScript 使用 (this) 关键字

来自分类Dev

@final 关键字的使用

来自分类Dev

Java的:不能使用从MySQL的“使用”关键字?