我已经在线阅读了一些教程,发现很难理解,它们都涉及建立新类并在主线程上运行线程。我没有主体,因为我正在为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/

10-10 15:02