Я начал изучать Java, и теперь я нахожусь в главе параллелизма.Прочитав кое-что о параллелизме, я попробовал собственный пример.
public class Task implements Runnable{
public void run() {
while(!Thread.interrupted()) {
try {
System.out.println("task");
TimeUnit.SECONDS.sleep(2);
}catch (InterruptedException e) {
System.out.println("interrupted");
}
}
}
}
public static void main(String[] args) throws Exception {
ExecutorService exec = Executors.newCachedThreadPool();
exec.execute(new Task());
TimeUnit.SECONDS.sleep(10);
exec.shutdownNow();
}
Проблема в том, что я ожидал увидеть следующий вывод:
task
task
task
task
task
interrupted
, но после того, как я получил это, программа продолжает печатать, пока я не закрою ее.
Итак, мой вопрос: что я делаю не так?почему программа продолжает печатать?