假设我有一个不是线程安全的队列实现。我怎样才能使它线程安全(不修改原始代码)?换句话说:
如何编写由常规的非线程安全队列支持的SynchronizedQueueWrapper?
另外:我的queue除了add,remove,peek和size函数外没有实现Collection接口。
发布于 2014-06-25 19:38:16
如果您的队列实现了Collection,您可以简单地使用Collections.synchronizedCollection(queue);。否则,我建议您检查the code of synchronizedCollection并执行类似的操作(本质上:通过this上的互斥锁保护队列上的所有操作)。
请注意,它仍然需要用户正确地访问同步队列,例如在迭代期间。
https://stackoverflow.com/questions/24407575
复制相似问题