InnerSelfRun.java
上传用户:songled
上传日期:2022-07-14
资源大小:94k
文件大小:1k
源码类别:

进程与线程

开发平台:

Java

  1. public class InnerSelfRun extends Object {
  2. private Thread internalThread;
  3. private volatile boolean noStopRequested;
  4. public InnerSelfRun() {
  5. // other constructor stuff should appear here first ...
  6. System.out.println("in constructor - initializing...");
  7. // just before returning, the thread should be created and started.
  8. noStopRequested = true;
  9. Runnable r = new Runnable() {
  10. public void run() {
  11. try {
  12. runWork();
  13. } catch ( Exception x ) {
  14. // in case ANY exception slips through
  15. x.printStackTrace(); 
  16. }
  17. }
  18. };
  19. internalThread = new Thread(r);
  20. internalThread.start();
  21. }
  22. private void runWork() {
  23. while ( noStopRequested ) {
  24. System.out.println("in runWork() - still going...");
  25. try {
  26. Thread.sleep(700);
  27. } catch ( InterruptedException x ) {
  28. // Any caught interrupts should be habitually re-asserted
  29. // for any blocking statements which follow.
  30. Thread.currentThread().interrupt(); // re-assert interrupt
  31. }
  32. }
  33. }
  34. public void stopRequest() {
  35. noStopRequested = false;
  36. internalThread.interrupt();
  37. }
  38. public boolean isAlive() {
  39. return internalThread.isAlive();
  40. }
  41. }