Я новичок в потоках. Как я могу заставить t.join
работать, когда поток, вызывающий его, ждет, пока t не исполнится?
Этот код будет просто замораживать программу, потому что поток ждет, когда он умрет, правильно?
public static void main(String[] args) throws InterruptedException {
Thread t0 = new Thready();
t0.start();
}
@Override
public void run() {
for (String s : info) {
try {
join();
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.printf("%s %s%n", getName(), s);
}
}
Что мне делать, если бы я хотел иметь два потока, один из которых выдает половину массива info
, а затем ждет, пока другой закончит, прежде чем делать остальные?