gpt4 book ai didi

java - Java 中的并发 - 仅在一个方法上?

转载 作者:行者123 更新时间:2023-12-02 03:42:34 25 4
gpt4 key购买 nike

我在网上阅读了一些教程,发现很难理解,它们都涉及设置一个新类并在主线程上运行线程。我没有主干,因为我正在为 GUI 构建后端,而我只是在处理一个界面。

我在下面粘贴了一个代码示例,以尝试演示我想要做什么。

public class TestClass {

public void testMethod(){
Queue<List<Long>> q = new ArrayDeque<>();
List<Long> testList = new ArrayList<>();
testList.add(9L);
q.add(testList);

while(q.size()>0){
//take off list from front of queue
//manipulate list and return it to queue/Delete it if no more to add and not reached a threshold.
}

所以基本上我想将 while 循环作为线程调用,因为我希望能够控制它的运行时间并获得一些效率。

有人可以建议一下吗?

谢谢

最佳答案

将您的 while 循环更改为类似这样的内容。

Thread t = new Thread(){
public void run() {
while (q.size() > 0) {
// take off list from front of queue
// manipulate list and return it to queue/Delete it if no more to
// add and not reached a threshold.
}
//all other code
};
};
t.start();

或者您可以等待线程完成执行,但这会再次阻塞您的 testMethod 直到 while 循环完成。我认为这不是您所需要的。

Thread t = new Thread(){
public void run() {
while (q.size() > 0) {
// take off list from front of queue
// manipulate list and return it to queue/Delete it if no more to
// add and not reached a threshold.
}
};
};
t.start();
t.join();//waits for the thread to finish execution.
//rest of your code.

关于java - Java 中的并发 - 仅在一个方法上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36670999/

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