gpt4 book ai didi

java - 如何在 Activity 的特定线程上运行任务?

转载 作者:行者123 更新时间:2023-11-29 04:42:57 25 4
gpt4 key购买 nike

有没有一种方法可以执行类似 android 操作系统或 java AWT 线程的任务,其中任务在特定线程上运行,而不管该方法是从哪个线程调用的,例如重绘()。

private Thread thread;
public void startThread(){ //method which start's my thread
thread = new Thread(new Runnable(){
doSomething();
});
thread.start()
}

public void submitTask(Runnable runnable){
//run the runnable task on the thread "thread"
}

在我有多个 Activity 线程的情况下,我怎样才能实现这样的目标

最佳答案

我之前处理这种情况的方法是创建一个工作队列和一个线程来处理添加到其中的任务。因此任何线程都可以将工作项添加到队列中,并且无论哪个线程添加了工作项,同一个线程都会处理它。

 public class MyClass {

private LinkedBlockingQueue<MyTask> myTaskProcessingQueue;

public MyClass() {
myTaskProcessingQueue = new LinkedBlockingQueue<MyTask>();
new MyTaskWorker().start();
}

public void processTask(MyTask myTask) {
myTaskProcessingQueue.put(myTask);
}

private class MyTaskWorker extends Thread {

@Override
public void run() {
while (true) {
try {
processMyTask(myTaskProcessingQueue.take());
} catch (InterruptedException ie) {
// handle it
}
}
}

private void processMyTask(MyTask myTask) {
// do work
}
}
}

关于java - 如何在 Activity 的特定线程上运行任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38427279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com