问题标签 [java.util.concurrent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - lock.lock() 在尝试之前
有什么区别:
和
编译顺利,程序也可以工作(我的意思是相同的输出)
我应该放 lock.lock(); 尝试之前还是之后?...
谢谢你的帮助
java - 多线程Java应用程序中的数据缓冲
我有一个多线程应用程序,它有一个生产者线程和几个消费者线程。数据存储在共享线程安全集合中,并在缓冲区中有足够数据时刷新到数据库。
从 javadocs -
一个队列,它还支持在检索元素时等待队列变为非空,并在存储元素时等待队列中的空间变为可用的操作。
检索并删除此队列的头部,如有必要,等待元素可用。
我的问题-
- 是否有另一个具有 E[] take(int n) 方法的集合?即阻塞队列一直等到一个元素可用。我想要的是它应该等到 100 或 200 个元素可用。
- 或者,是否有另一种方法可以在不进行轮询的情况下解决问题?
java - 阻塞队列和 InterruptedException
我有一个 A 类,其属性为 LinkedBlockingQueue。在 A 的一种方法中,我调用 LinkedBlockingQueue.put() 方法,因为我想在队列中插入一个项目。但是,如果队列已满,我的线程将等到空间可用或我的线程被中断。
问题是即使我的线程被中断,我也希望该项目在队列中。
有没有办法确保我的项目已插入队列?
谢谢
java - ReentrantReadWriteLock 挂起
知道为什么这个构造函数无限期挂起吗?我正在尝试创建一个线程安全的单例。
顺便说一句,我意识到将锁放在静态吸气剂中可能会更好;我只是想知道在构造函数中使用锁是否本质上是错误的
java - 请用这个 put-if-absent 成语解释比赛条件
考虑以下代码并假设列表是同步列表。
我知道上面的代码片段需要在外部同步(由锁保护)以使其完全线程安全。竞争条件在哪里出现?
java - “私有”修饰符是否也确保 Java 中的线程安全
阅读Brain Goetz 的这篇关于安全构造技术的优秀文章后,我对清单 5 中给出的评论感到困惑。下面是代码片段:
他为什么要这么说me
?// Safe because "me" is not visible from any other thread
. 两个线程不能同时访问实例变量me
吗?
java - java并发编程中所有线程都将同时启动吗?
在我的程序中,我正在创建 2 个任务。这些任务实现了Callable
接口。我将这些传递给 2 个线程以执行线程池类。我的问题是这两个线程会同时启动吗?在java并发编程中,所有线程都会同时启动吗?
java - 如何在并发 java 编程中指定线程执行?
我正在使用 Callable、Executor 和 Future 对象从单独的线程并行调用 web 服务。执行完所有 web 服务调用后,我在 jsp 中显示结果。
在这里我有一个疑问:如果其中一个 web 服务调用失败,如何在 jsp 中显示成功调用的结果?
如果在这种情况下一个线程需要更多时间来执行,我想跳过该响应并在 jsp 中显示其余结果。
我试图在一个网络服务中添加一个Thread.sleep(1000)
,但响应在 jsp 中也有延迟。
java - 我如何在 Java 并发编程中处理 CancellationException?
我正在使用 java.util.concurrent 包来创建一个并行程序。我有 2 个线程:
- 调用 webservice 方法 1 的线程 1,以及
- 调用 webservice 方法 2 的线程 2。
我正在指定线程执行超时 - 假设如果线程 1 没有在指定的超时时间内完成执行,那么我必须拦截线程 1,继续使用线程 2 执行并在 jsp 中显示线程 2 结果(注意:如果两者线程需要太多时间来处理请求,然后我不希望 UI 等到它们完成)。
我尝试使用下面的代码,但它抛出了一个 InterruptedException。当一项任务陷入更多泥潭时,我该如何继续执行其他任务?