synchronized(ResultQueue){
if(!ResultQueue.isEmpty()) {//如果此 collection 不包含元素,则返回 true
url = ResultQueue.poll();//检索并移除此队列的头,如果此队列为空,则返回 null
}
}
需要对某个对象同步的时候,一定要做到不要跟非该对象的操作不要去做。比如下面方式
synchronized(ResultQueue){
if(!ResultQueue.isEmpty()) {//如果此 collection 不包含元素,则返回 true
url = ResultQueue.poll();//检索并移除此队列的头,如果此队列为空,则返回 null
}else{
Thread.sleep(1000*60*60);
continue;
}
}
看看上面的代码,这样的话,该对象ResultQueue持有的时间就是1个小时啦。如果其他地方也对这个对象操作的话,那么其他地方的操作都是无效。