java - 不共享公共(public)资源的线程是否可以根据线程 ID/名称进行通知?

标签 java multithreading wait notify

如果我知道我想要通知的线程的ID,并且不共享其他公共(public)资源,我可以通知它吗? 这两个线程都是由同一个应用程序启动的。

另一个线程通过使用 Thread.currentThread().wait(500); 进入等待状态

最佳答案

是的 - 但您必须停止使用wait .

该技术是维持 Map<String,BlockingQueue>包含每个正在运行的线程的队列。 String key 是线程 ID。

当您希望线程暂停时,请使用 queue.poll(long, TimeUnit)而不是wait 。你只需要在队列中放入一些东西来唤醒线程,显然如果你知道线程的ID,你可以轻松获得它的Queue来自Map .

关于java - 不共享公共(public)资源的线程是否可以根据线程 ID/名称进行通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22066619/

相关文章:

java - 如何在Android应用程序中重复调用函数?

linux - C中使用exit()和wait()从子进程向父进程返回值

java - 是什么让其他语言在快速开发方面比 Java 更快?

java - 字符串数组 - 不必要的同步?

java - 将死线程对象包装在新线程对象中以重新启动它

java - 应如何处理 CountDownLatch.wait 的 InterruptedException

javascript - javascript 变量上的 Nightmare.js wait()

java - 适合视口(viewport)黑条

java - 应用程序在 netbeans 中工作,但分发 jar 不工作

java - JAVA中将接口(interface)定义为变量类型