首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

多线程操作-找异常

2012-09-22 
多线程操作----找错误找找下面错误class ListHepler{public ListE list Collections.synchronizedList

多线程操作----找错误
找找下面错误

class ListHepler{public List<E> list = Collections.synchronizedList(new ArrayList<E>());public synchronized boolean putIfAbsent(E x){boolean absent = !list.contains(x);if(absent)list.add(x);return absent;}}

这里putIfAbsent方法和list使用的不是同一个锁,所以有隐患

class ListHepler{public List<E> list = Collections.synchronizedList(new ArrayList<E>());public  boolean putIfAbset(E x){                synchronized (list) {      boolean absent = !list.contains(x);if(absent)list.add(x);}return absent;}}


上面的方法都很傻逼

class ListHepler{public List<E> list = new ArrayList<E>();public synchronized boolean putIfAbset(E x){    boolean absent = !list.contains(x);if(absent)list.add(x);}return absent;}}

热点排行