一般来说,锁定Java有多贵?
特别是在我的情况下:我有一个多线程应用程序,其中有一个主循环从DelayQueue中取出对象并处理它们(使用poll()).在某些时候,不同的线程必须从队列中删除错误的元素(使用remove()).
鉴于remove()相对不常见,我担心锁定每个poll()会导致代码变慢.我的担忧是否合理?
除非您分析您的应用并发现这是一个瓶颈,否则它们是不合理的.
一般来说,无关紧要的锁定(即大多数时候不必等待某人释放它的锁)随着Java 5和Java 6的一些变化而变得便宜得多.
如果它足够快,实施它安全,简单和配置文件.