package com.myd.myloop;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.blankj.utilcode.util.ThreadUtils;
import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
public class MainActivity extends AppCompatActivity {
private Queue<Integer> loopDatas = new ConcurrentLinkedQueue<>();//队列
private int anInt = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button addButton = findViewById(R.id.add);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
@Override
public void run() {
anInt++;
loopDatas.offer(anInt); //添加数据
}
}).start();
}
});
//开启队列监听,队列加入数据就会执行
startLoopListener();
}
public void startLoopListener(){
ThreadUtils.getIoPool().execute(new Runnable() {
@Override
public void run() {
try {
while (true){
if (loopDatas.size() > 0){
Integer value = loopDatas.poll();
if (value != null){
System.out.println("执行队列-读取到数据="+value);
}
Thread.sleep(1000);//队列执行间隔
}
}
}catch (Exception e){
e.printStackTrace();
}
}
});
}
}
Android 队列执行demo
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 除了上边提到的『主线程』中调用『主队列』+『同步执行』会导致死锁问题。实际在使用『串行队列』的时候,也可能出现阻塞...
- 所以这里同步应该不是一起、而是共同完成的意思,可理解为协调就是按预定的先后次序进行工作,好比:不要和我抢了,你先等...
- 1. GCD 任务和队列 学习 GCD 之前,先来了解 GCD 中两个核心概念:『任务』 和 『队列』。任务:就是...
- GCD 串行队列,并行队列,同步执行,异步执行的探讨(附练习题)。 并行队列 + 异步执行 原因 并行队列: 任务...
- Dispatch QueuesDispatch queue是一个对象,它可以接收任务,并将任务以先到先执行的顺序来...