日期:2014-05-20  浏览次数:20915 次

如何定义一个线程安全的LinkedList对象?
不能是   List   synList   =   Collections.synchronizedList(new   LinkedList());
因为我想使用   LinkedList.addFirst();   和   removeLast();方法!
谢谢指教!!!

------解决方案--------------------
扩展LinkedList 重写addFirst方法和removeLast方法,加上同步处理.不知道是否可行
------解决方案--------------------
定义一个类 MyLinkedList extends LinkedList
实现同步LinkedList.addFirst(); 和 removeLast();方法!

MyLinkedList list = new MyLinkedList ();
List listProxy = Collections.synchronizedList(list);


用普通方法时用 listprocxy 的方法, .....................

或者MyLinkedList 全部实现同步
------解决方案--------------------
List synList = Collections.synchronizedList(new LinkedList());

LinkedList.addFirst(); ====> list.add(0,obj);
LinkedList.removeLast(); ===> list.remove(list.size());
------解决方案--------------------
直接用Collections.synchronizedXXX方法,但要主要你要用容器的iterator()的时候在你的代码外围加上
synchronized(你的集合对象)