1、创建任务队列对象:
public ConcurrentLinkedQueue<Runnable> queue = new ConcurrentLinkedQueue<>();
2、在当前线程将任务加入队列:
//向队列中添加任务,并没有执行
//add lambda表达式
queue.add(()->{
log.info("taskQueue...");
});
3、在另一个线程取出任务运行:
Runnable task = queue.poll();//取出任务
if(task!=null){
task.run();//运行
}
总结:
当我们有执行顺序有相关联的代码在两个不同的线程中执行,因为不同线程运行顺序不可控,就可以使用任务队列将他们放入一个线程中运行,在同一个线程中,更容易控制从而达到我们想要的结果。