fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3.  
  4. import java.util.concurrent.TimeUnit;
  5.  
  6. class Test {
  7. private static boolean running = true;
  8.  
  9. public static void main(String[] args) {
  10. new Thread(() -> {
  11. System.out.println(Thread.currentThread().getName() + "get running:" + running);
  12. while (running) {
  13. try {
  14. TimeUnit.SECONDS.sleep(2);
  15. } catch (InterruptedException e) {
  16. e.printStackTrace();
  17. }
  18. }
  19. System.out.println(Thread.currentThread().getName() + "end");
  20. }, "t1").start();
  21.  
  22. new Thread(() -> {
  23. try {
  24. TimeUnit.SECONDS.sleep(2);
  25. } catch (InterruptedException e) {
  26. e.printStackTrace();
  27. }
  28. running = false;
  29. System.out.println(Thread.currentThread().getName() + "change running to:" + running);
  30. }, "t2").start();
  31.  
  32. new Thread(() -> {
  33. System.out.println(Thread.currentThread().getName() + "get running:" + running);
  34. try {
  35. TimeUnit.SECONDS.sleep(3);
  36. } catch (InterruptedException e) {
  37. e.printStackTrace();
  38. }
  39. System.out.println(Thread.currentThread().getName() + "get running:" + running);
  40. }, "t3").start();
  41. }
  42. }
Success #stdin #stdout 0.14s 36812KB
stdin
Standard input is empty
stdout
t3get running:true
t1get running:true
t2change running to:false
t1end
t3get running:false