Tho*_*alc 5 java performance multithreading android
有时我需要醒来或发送一个单独的线程,我想知道什么是最好和最有效的方法.
第一个解决方案是信号结合wait-notify
(我知道如何正确实现这种模式,这不是问题).
我在某处读到了使用java.concurrent库和CountDownLatch
信令的效率更高.我也检查了concurrent.locks.Condition,但是这个主题声明它只是一个(程序员方面的)更安全和通用的结构,与之相比没有性能优势notify/notifyAll
.彼得Lawrey建议使用并发库,而不是notify-notifyAll
在这个意见,所以现在我感到困惑的是要使用的最佳实践.
一个相关的问题:哪个性能更好,notify
或者notifyAll
在我的情况下(即如果我有一个线程)?我知道有很多类似的线索,但没有一个给出明确的答案.在我的情况下,功能上,我使用哪个并不重要,但我想知道哪个更快.
在我看来,它们在“性能方面”没有太大区别,因为它们都挂起调用相应线程的线程wait
,因此底层机制很可能非常相似。无论如何,为什么性能如此重要?除非您有一些极快的等待/信号模式,其中信号在等待后立即出现,使得上下文切换过于昂贵并且可能需要自旋锁,否则无需担心性能。
您应该实现您认为最方便的编程方法,然后进行基准测试,看看您是否真的需要更高性能的方法。
归档时间: |
|
查看次数: |
608 次 |
最近记录: |