我有问题。 我刚刚开始使用 Threads,但我对此很蹩脚。 我正在处理一些任务。
假设我有 3 个线程。每个线程的主要任务是从 .txt 等写入 1 行到文件末尾。 我设法做到了这一点,但我不知道如何正确使用wait()和notify()。 我的程序运行如下:
t1 writes line
t2 writes line
t1 writes line
t2 writes line
t3 writes line
t2
t1
t2
t3
t2
t1 ...
当我使用某个对象同步我的线程时。在每个新的 Thread run() 方法中,我还键入了 notificationAll() 和 wait() 方法。但它并没有像它应该的那样工作,即:
t1
t2
t3
t1
t2
t3
...
各位有什么建议吗?我将不胜感激。
tldr:如何通知t2在t1之后启动,t3在t2之后启动,t1在t3之后启动,依此类推?
最佳答案
仅使用 Thread 类的最简单解决方案:
thread1.start();
thread1.join();
thread2.start();
thread2.join();
thread3.start();
thread3.join();
但这真的有帮助吗?如果您无论如何都想按顺序运行它们,为什么还要将它们创建为线程呢?
关于java - 按特定顺序运行线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36703914/