java - 聚合线程和线程优先级(java)

标签 java multithreading

让我们假设我有两个线程在程序中运行。两个线程都会到达一个节点(例如在树或 map 中),用户必须在其中输入数据才能使线程继续。通常,如果节点是同步的,则无论哪个线程首先到达该节点,都将等待输入,同时阻止任何其他线程到达该节点。

问题是:

有没有办法通过让第二个线程(被锁定的人)通过第一个线程来容纳他?另外,是否可以在不导致线程1退出的情况下做到这一点?

我已经知道您可以对输入数据设置时间限制,以便线程 1 在节点上停留时间过长时被关闭,但是可以这么说,线程 2 是否可以“播放”?

别介意伙计们,我想我已经弄清楚了,我的问题措辞很糟糕,但感谢您的尝试。

最佳答案

如果我的问题正确,答案是java.util.concurrent.locks.Lock.tryLock()。只需使用它代替 synchronized 关键字即可。

关于java - 聚合线程和线程优先级(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5285676/

相关文章:

java - 如何使用 java Streams API 转换 for 循环迭代 n 次以实现具有多个动态变化的计数的列表

ruby - JRuby 多核处理用法

来自类与线程的 Java 资源

java - 如何使用 Avro 在 Spring Kafka 1.3 中移动过去不可反序列化的消息

java - GXT 3\Grid\第一列的宽度

c - pthread_cond_signal 会通知哪个线程?

c# - 如果在 Set() 之后立即调用 Reset(),则 ManualResetEvent.WaitOne() 不会返回

c# - 异步调用时如何让 ManagementObjectSearcher 返回 ManagementObjectCollection?

java - 如何根据是或否添加费用?

java - 如何将 java JAXB Schema 类导出到 xsd 文件?