gpt4 book ai didi

java - 是否可以在另一个线程中执行从一个线程提交到另一个现有且正在运行的线程的任务?

转载 作者:行者123 更新时间:2023-12-02 09:43:32 25 4
gpt4 key购买 nike

我创建了 2 个线程。我需要从一个线程向另一个线程提交一个可运行程序,并在另一个线程中执行它。可能吗?

编辑:实际上我需要使用主线程而不是另一个线程。所以不可能使用ExecutorService。

编辑:此问题有解决方案:Running code on the main thread from a secondary thread? .

我在下面发布了我的示例:

public class SomeClass {

private static Thread thread;
private static Thread another_thread;

public static void main(String[] args) {

thread = new Thread(() -> {
//do something
Runnable runnable = () -> {
//do something
};
//submit runnable to another_thread
//do something else while the Runnable runnable is being executed in another_thread
});

another_thread = new Thread(() -> {
//do something
});

another_thread.start();
thread.start();
}
}

最佳答案

这是您通常想要执行的操作:

class YourClass {
public static void main(String[] args) {
ExecutorService executor1 = Executors.newSingleThreadExecutor();
ExecutorService executor2 = Executors.newSingleThreadExecutor();

Runnable run1 = () -> {
Runnable run2 = createRunnable();
// submit in second thread
executor2.submit(run2);
}

// submit in first thread
executor1.submit(run1);
}

关于java - 是否可以在另一个线程中执行从一个线程提交到另一个现有且正在运行的线程的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56852765/

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