TestInterrupt.java 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import java.util.concurrent.*;
  2. public class TestInterrupt {
  3. public static void main(String[] args) {
  4. InterruptThread thread = new InterruptThread();
  5. thread.start();
  6. try {
  7. Thread.sleep(500);
  8. } catch (Exception e) {
  9. e.printStackTrace();
  10. }
  11. thread.interrupt();
  12. ExecutorService executor = Executors.newFixedThreadPool(1);
  13. executor.execute(() -> {
  14. System.out.println("Thread start!");
  15. try {
  16. Thread.sleep(1000);
  17. } catch (Exception e) {
  18. e.printStackTrace();
  19. }
  20. });
  21. executor.shutdownNow();
  22. }
  23. }
  24. class InterruptThread extends Thread {
  25. @Override
  26. public void run() {
  27. while (!interrupted()) {
  28. System.out.println("Thread is running.");
  29. try {
  30. Thread.sleep(1000);
  31. } catch (Exception e) {
  32. e.printStackTrace();
  33. return;
  34. }
  35. }
  36. System.out.println("Thread end.");
  37. }
  38. }