如何让一个线程等待另一个线程?

佐罗

我有两个线程:C和D。如果我要先执行线程C,然后再执行线程D,那是我必须要做的:

这是课程的代码ThreadC

public class ThreadC implements Runnable {

    int isi[] = new int[100];

    public void run () {
        for (int i = 0;i < isi.length; i++) {
            isi[i] = i;
            System.out.print(isi[i] + " ");
        }
    }
}

这是课程的代码ThreadD

public class ThreadD implements Runnable {

    int temp=0;

    public void run () {
        for(int i = 0; i < 1000; i++)
            temp += i;
        System.out.println("nilai temp : " + temp);
    }
}

这是主要方法:

public class main {
    public static void main (String[] args) {
        ThreadC tc = new ThreadC();
        Thread t1 = new Thread(tc);
        t1.start();
        ThreadD td = new ThreadD();
        Thread t2 = new Thread(td);
        t2.start();
    }
}

编辑:

我实际上有问题,就是我上课。首先,我称ThreadC。我希望线程C完成执行,然后for下的线程将被执行。然后我叫ThreadD。就像下面的代码:

for (int j = 0; j < idW.length; j++) {
    webtext = d.getWebText(idW[j]); 
    ThreadPrepo tpo = new ThreadPrepo(webtext, host[j%jumhost], "server", 1099, idW[j]);  
    Thread t1 = new Thread(tpo);
    t1.start();

}
ThreadD td = new ThreadD;
Thread t2 = new Thread(t2);
t2.start();

因此ThreadD t2将在线程t1完成执行后执行,因此线程t2必须等待直到t1哈希完成。

我该如何解决?

杰夫·斯托里(Jeff Storey)

使用Thread.join()加入线程将等待它完成。如果要t2在之后运行t1,以下代码段将执行此操作:

t1.start();
t1.join(); // blocks until t1 is complete
t2.start();

编辑:澄清一下,如果您真的只有两个这样的线程,请不要这样做-不需要线程,并且可运行对象只能按顺序运行。如果您有多个线程同时运行,并且在运行其他代码之前需要等待所有线程完成,则联接可以很好地工作(线程完成后的代码不需要在线程中运行)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何阻止一个线程修改另一个线程正在使用的数组?

来自分类Dev

前一个线程完成后启动另一个线程

来自分类Dev

同步对象可锁定一个线程并释放另一个线程

来自分类Dev

在等待另一个线程完成工作时取消阻塞主线程

来自分类Dev

如何确保一个线程在另一个CORE中执行?

来自分类Dev

如何获取另一个线程的ThreadStatic值?

来自分类Dev

leveldb线程安全:读入一个线程,遍历另一个线程

来自分类Dev

从C ++ 11中的另一个线程解锁一个线程

来自分类Dev

一个线程可以中断另一个线程吗?

来自分类Dev

来自一个线程的值影响另一个线程的路径

来自分类Dev

如何冻结一个线程并从另一个线程通知它?

来自分类Dev

我该如何从HashMap中删除一个线程,并从另一个线程中插入一个线程?

来自分类Dev

Python多线程使用另一个线程中的一个线程的数据

来自分类Dev

如何从另一个线程正确停止QTimer

来自分类Dev

当另一个线程等待HTTP响应时,另一个线程会执行吗?

来自分类Dev

从另一个线程访问一个线程上的变量-Android

来自分类Dev

仅等待另一个线程的一部分-Java

来自分类Dev

同步对象可锁定一个线程并释放另一个线程

来自分类Dev

在等待另一个线程完成工作时取消阻塞主线程

来自分类Dev

如何使一个线程杀死另一个线程?

来自分类Dev

如何从另一个线程填充面板?

来自分类Dev

在另一个线程中的一个线程内运行代码

来自分类Dev

如何从另一个线程android访问对象

来自分类Dev

如何从另一个线程调用控制方法

来自分类Dev

如何确定一个套接字是另一个线程的shutdown()?

来自分类Dev

如何获取另一个线程的调用堆栈?

来自分类Dev

如何创建线程来控制另一个?

来自分类Dev

当一个线程必须等待另一个线程时,为什么要并行化?

来自分类Dev

如何让当前线程在继续之前等待另一个线程完成?

Related 相关文章

  1. 1

    如何阻止一个线程修改另一个线程正在使用的数组?

  2. 2

    前一个线程完成后启动另一个线程

  3. 3

    同步对象可锁定一个线程并释放另一个线程

  4. 4

    在等待另一个线程完成工作时取消阻塞主线程

  5. 5

    如何确保一个线程在另一个CORE中执行?

  6. 6

    如何获取另一个线程的ThreadStatic值?

  7. 7

    leveldb线程安全:读入一个线程,遍历另一个线程

  8. 8

    从C ++ 11中的另一个线程解锁一个线程

  9. 9

    一个线程可以中断另一个线程吗?

  10. 10

    来自一个线程的值影响另一个线程的路径

  11. 11

    如何冻结一个线程并从另一个线程通知它?

  12. 12

    我该如何从HashMap中删除一个线程,并从另一个线程中插入一个线程?

  13. 13

    Python多线程使用另一个线程中的一个线程的数据

  14. 14

    如何从另一个线程正确停止QTimer

  15. 15

    当另一个线程等待HTTP响应时,另一个线程会执行吗?

  16. 16

    从另一个线程访问一个线程上的变量-Android

  17. 17

    仅等待另一个线程的一部分-Java

  18. 18

    同步对象可锁定一个线程并释放另一个线程

  19. 19

    在等待另一个线程完成工作时取消阻塞主线程

  20. 20

    如何使一个线程杀死另一个线程?

  21. 21

    如何从另一个线程填充面板?

  22. 22

    在另一个线程中的一个线程内运行代码

  23. 23

    如何从另一个线程android访问对象

  24. 24

    如何从另一个线程调用控制方法

  25. 25

    如何确定一个套接字是另一个线程的shutdown()?

  26. 26

    如何获取另一个线程的调用堆栈?

  27. 27

    如何创建线程来控制另一个?

  28. 28

    当一个线程必须等待另一个线程时,为什么要并行化?

  29. 29

    如何让当前线程在继续之前等待另一个线程完成?

热门标签

归档