gpt4 book ai didi

java - 为什么在@PostConstruct 方法中实际上只能启动一个线程?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:59:37 29 4
gpt4 key购买 nike

@Component
class Type
{
@PostConstruct
private void postConstructor() {

Runnable threadAlpha = () -> {
while (true) {
workWithSomething();
try {
Thread.sleep(1000 * 60);
} catch (InterruptedException e) {
}
}
};
Runnable threadBeta = () -> {
while (true) {
workWithOtherthing();
try {
Thread.sleep(1000 * 3);
} catch (InterruptedException e) {
}
}
};
threadBeta.run();
threadAlpha.run();
}
}

使用 spring-framework,我正在为这段代码苦苦挣扎,问题是只有一个线程可以实际启动,首先调用 run(),另一个似乎卡住,如果我切换位置如下:

        threadAlpha.run();
threadBeta.run();

然后 threadBeta 从未启动,为什么会发生这样的事情?

最佳答案

因为您没有创建线程。而不是创建 Runnable 实例,然后运行它们的 run 方法。

改为这样做:

new Thread(threadAlpha).start();
new Thread(threadBeta).start();

关于java - 为什么在@PostConstruct 方法中实际上只能启动一个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57535213/

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