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

进程与线程

开发平台:

Java

  1. import java.io.*;
  2. public class DefiantStream extends Object {
  3. public static void main(String[] args) {
  4. final InputStream in = System.in;
  5. Runnable r = new Runnable() {
  6. public void run() {
  7. try {
  8. System.err.println(
  9. "about to try to read from in");
  10. in.read();
  11. System.err.println("just read from in");
  12. } catch ( InterruptedIOException iiox ) {
  13. iiox.printStackTrace();
  14. } catch ( IOException iox ) {
  15. iox.printStackTrace();
  16. //} catch ( InterruptedException ix ) { 
  17. //  InterruptedException is never thrown!
  18. // ix.printStackTrace();
  19. } catch ( Exception x ) {
  20. x.printStackTrace();
  21. } finally {
  22. Thread currThread = 
  23. Thread.currentThread();
  24. System.err.println("inside finally:n" +
  25. "  currThread=" + currThread + "n" +
  26. "  currThread.isAlive()=" + 
  27. currThread.isAlive());
  28. }
  29. }
  30. };
  31. Thread t = new Thread(r);
  32. t.start();
  33. try { Thread.sleep(2000); } 
  34. catch ( InterruptedException x ) { }
  35. System.err.println("about to interrupt thread");
  36. t.interrupt();
  37. System.err.println("just interrupted thread");
  38. try { Thread.sleep(2000); } 
  39. catch ( InterruptedException x ) { }
  40. System.err.println("about to stop thread");
  41. // stop() is being used here to show that the extreme
  42. // action of stopping a thread is also ineffective. 
  43. // Because stop() is deprecated, the compiler issues
  44. // a warning.
  45. t.stop(); 
  46. System.err.println("just stopped thread, t.isAlive()=" +
  47. t.isAlive());
  48. try { Thread.sleep(2000); } 
  49. catch ( InterruptedException x ) { }
  50. System.err.println("t.isAlive()=" + t.isAlive());
  51. System.err.println("leaving main()");
  52. }
  53. }