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

进程与线程

开发平台:

Java

  1. public class SelfRun extends Object implements Runnable {
  2. private Thread internalThread;
  3. private volatile boolean noStopRequested;
  4. public SelfRun() {
  5. // other constructor stuff should appear here first ...
  6. System.out.println("in constructor - initializing...");
  7. // Just before returning, the thread should be 
  8. // created and started.
  9. noStopRequested = true;
  10. internalThread = new Thread(this);
  11. internalThread.start();
  12. }
  13. public void run() {
  14. // Check that no one has erroneously invoked 
  15. // this public method.
  16. if ( Thread.currentThread() != internalThread ) {
  17. throw new RuntimeException("only the internal " +
  18. "thread is allowed to invoke run()");
  19. }
  20. while ( noStopRequested ) {
  21. System.out.println("in run() - still going...");
  22. try {
  23. Thread.sleep(700);
  24. } catch ( InterruptedException x ) {
  25. // Any caught interrupts should be habitually 
  26. // reasserted for any blocking statements 
  27. // which follow.
  28. Thread.currentThread().interrupt(); 
  29. }
  30. }
  31. }
  32. public void stopRequest() {
  33. noStopRequested = false;
  34. internalThread.interrupt();
  35. }
  36. public boolean isAlive() {
  37. return internalThread.isAlive();
  38. }
  39. }