所以我有以下主题:
public class MyThread extends Thread
{
Handler cHandler;
private boolean looprunning = false;
MyThread() {
cHandler = new Handler();
looprunning = true;
}
@Override
public void run(){
while (looprunning) {
//do stuff here
//update another system here or something else.
}
}
}
在此线程的 while 循环内,我想运行一个 Runnable,当线程在该 while 循环内循环时,我将其传递给该线程。我该怎么做?
最佳答案
首先请将looprunning
标记为 volatile ,以获得正确的线程可见性
您可以使用队列
Queue<Runnable> taskQueue = new ConcurrentLinkedQueue<Runnable>();
@Override
public void run(){
while (looprunning) {
//do stuff here
//update another system here or something else.
Runnable r = taskQueue.poll();
if(r!=null)r.run();
}
}
您可以使用您选择的(线程安全)队列
关于java - java/android 向循环线程发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10618630/