阻止访问一个方法而另一个方法被调用?

时间:2014-06-25 11:37:15

标签: java multithreading concurrency

我有两种方法,一种是添加消息

addMessage

一个获取所有消息并清除列表:

getMessagesToSendAndClear

是否可以允许多个线程同时调用AddMessage,但在调用getMessagesToSendAnClear时保持“保持”调用?

getMessagesToSendAnClear仅由1个线程调用。

“保持”是指与使用synchronized时相同的效果。

我无法在方法前面放置synchronized,因为addMessage一次只能被1个线程调用。

[edit]我开始认为只有在没有调用addMessage时才能调用getMessagesToSendAndClear。很难!

[编辑]也许有兴趣的是我的写方法(addMessage)非常便宜并且非常频繁地调用,而且我的read方法(getMessagesToSendAnClear)很慢并且很少被调用。

0 个答案:

没有答案