Java笔记-ConcurrentLinkedQueue的基本使用和注意事项

ConcurrentLinkedQueue这玩意用起来太方便了,这个的使用场景是在并发的时候使用。

这里提供一个几个简单的例子:

    @Override
    public void run() {

        try {

            if(queue == null || queue.size() == 0){

//                System.out.println(Thread.currentThread() + " queue is null or size is zero");
                return;
            }

            while (!queue.isEmpty()){

                String sql = queue.poll().toString();
                //TODO 写逻辑业务
                ......
                ......
            }
        }
        catch (SQLException e) {

            e.printStackTrace();
        }
    }

这里有个注意事项,在遍历ConcurrentLinkedQueue时不要使用for循环:

for(int i = 0; i < queue.size(); i++){
	
    //TODO
    ...
    ...
    ...
}

在多线程中这样写是会有问题的,请用下面的方式进行遍历:

while(!queue.isEmpty()){
	
    String sql = queue.poll().toString();
    //TODO写逻辑业务
    ......
    ......
}

这里的poll(),也就是出队列,这里也就是基本的数据结构。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页