GeneralInterrupt.java
资源名称:Source.rar [点击查看]
上传用户:songled
上传日期:2022-07-14
资源大小:94k
文件大小:2k
源码类别:
进程与线程
开发平台:
Java
- public class GeneralInterrupt extends Object implements Runnable {
- public void run() {
- /*
- try {
- System.out.println("in run() - about to sleep for 20 seconds");
- work();
- System.out.println("in run() - woke up");
- } catch ( InterruptedException x ) {
- System.out.println("in run() - interrupted while sleeping");
- //return;
- }
- */
- try {
- System.out.println("in run() - about to work2()");
- work2();
- System.out.println("in run() - back from work2()");
- } catch ( InterruptedException x ) {
- System.out.println("in run() - interrupted in work2()");
- return;
- }
- System.out.println("in run() - doing stuff after nap");
- System.out.println("in run() - leaving normally");
- }
- public void work2() throws InterruptedException {
- while ( true ) {
- if ( Thread.currentThread().isInterrupted() ) {
- System.out.println("C isInterrupted()=" +
- Thread.currentThread().isInterrupted());
- Thread.sleep(2000);
- System.out.println("D isInterrupted()=" +
- Thread.currentThread().isInterrupted());
- }
- }
- }
- public void work() throws InterruptedException {
- while ( true ) {
- for ( int i = 0; i < 100000; i++ ) {
- int j = i * 2;
- }
- System.out.println("A isInterrupted()=" +
- Thread.currentThread().isInterrupted());
- if ( Thread.interrupted() ) {
- System.out.println("B isInterrupted()=" +
- Thread.currentThread().isInterrupted());
- throw new InterruptedException();
- }
- }
- }
- public static void main(String[] args) {
- GeneralInterrupt si = new GeneralInterrupt();
- Thread t = new Thread(si);
- t.start();
- // be sure that the new thread gets a chance to run for a while
- try { Thread.sleep(2000); } catch ( InterruptedException x ) { }
- System.out.println("in main() - interrupting other thread");
- t.interrupt();
- System.out.println("in main() - leaving");
- }
- }