使非线程安全队列线程安全

时间:2014-06-25 11:34:36

标签: java thread-safety queue

假设我有一个非线程安全的队列实现。如何使其线程安全(不修改原始代码)?换句话说:

如何编写由常规非线程安全队列支持的SynchronizedQueueWrapper?

Plus:我的队列除了添加,删除,查看和调整大小功能外,还没有实现Collection接口。

1 个答案:

答案 0 :(得分:2)

如果您的队列实现Collection,您只需使用Collections.synchronizedCollection(queue);即可。否则,我建议您检查the code of synchronizedCollection并执行类似操作(主要是:通过this上的互斥锁保护队列中的所有操作。)

请注意,它仍然需要用户正确访问同步队列,例如在迭代期间。