我有两种方法,一种是添加消息
addMessage
一个获取所有消息并清除列表:
getMessagesToSendAndClear
是否可以允许多个线程同时调用AddMessage,但在调用getMessagesToSendAnClear时保持“保持”调用?
getMessagesToSendAnClear仅由1个线程调用。
“保持”是指与使用synchronized时相同的效果。
我无法在方法前面放置synchronized,因为addMessage一次只能被1个线程调用。
[edit]我开始认为只有在没有调用addMessage时才能调用getMessagesToSendAndClear。很难!
[编辑]也许有兴趣的是我的写方法(addMessage)非常便宜并且非常频繁地调用,而且我的read方法(getMessagesToSendAnClear)很慢并且很少被调用。