2009-02-05 102 views
1

一般来说,在Java中锁定有多昂贵?Java锁定有多昂贵?

特别是在我的情况:我有一个多线程的应用程序,其中有一个主循环将对象从DelayQueue中取出并处理它们(使用poll())。在某个时候,不同的线程将不得不从队列中删除错误的元素(使用remove())。

鉴于remove()是相对不常见的,我担心锁定每个poll()会导致代码变慢。我的担忧是否合理?

回答

11

他们没有正当理由,除非你分析你的应用程序,并发现这是一个瓶颈。

一般来说无可争议的锁定(即不必等待别人来释放它的大部分时间即锁定)已经成为便宜了很多在Java 5和Java的一些变化6.

实施IT安全如果速度够快,简单和简单。

4

你采取了一些措施,发现锁定速度太慢?没有?然后它不是。老实说,太多人担心太多无关紧要的东西。在担心“++ i”比“i ++”还是类似的东西更快之前,先让你的代码工作。