zoukankan      html  css  js  c++  java
  • Java 实例

    以下实例演示了如何通过继承 Thread 类并使用 currentThread.getName() 方法来监测线程的状态:

    Main.java 文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    class MyThread extends Thread{
       boolean waiting= true;
       boolean ready= false;
       MyThread() {
       }
       public void run() {
          String thrdName = Thread.currentThread().getName();
          System.out.println(thrdName + " starting.");
          while(waiting) 
          System.out.println("waiting:"+waiting); 
          System.out.println("waiting...");
          startWait(); 
          try {
             Thread.sleep(1000);
          }
          catch(Exception exc) {
             System.out.println(thrdName + " interrupted.");
          }
          System.out.println(thrdName + " terminating.");
       }
       synchronized void startWait() {
          try {
             while(!ready) wait();
          }
          catch(InterruptedException exc) {
             System.out.println("wait() interrupted");
          }
       }
       synchronized void notice() {
          ready = true;
          notify();
       }
    }
    public class Main {
       public static void main(String args[]) 
       throws Exception{
          MyThread thrd = new MyThread();
          thrd.setName("MyThread #1");
          showThreadStatus(thrd);
          thrd.start();
          Thread.sleep(50);
          showThreadStatus(thrd);
          thrd.waiting = false;
          Thread.sleep(50); 
          showThreadStatus(thrd);
          thrd.notice();
          Thread.sleep(50);
          showThreadStatus(thrd);
          while(thrd.isAlive()) 
          System.out.println("alive");
          showThreadStatus(thrd);
       }
       static void showThreadStatus(Thread thrd) {
          System.out.println(thrd.getName() + "Alive:=" + thrd.isAlive() + " State:=" + thrd.getState());
       }
    }

    以上代码运行输出结果为:

    点击链接查看结果

  • 相关阅读:
    weiPHP微信开发框架
    win7系统
    csdn博客频道
    一步一步安装Git控件版本工具
    php源码,php网站源码,php源码下载
    czz数据专家
    禁用了传说中的PHP危险函数之后,Laravel的定时任务不能执行了?
    php禁用函数设置及查看方法详解
    laravel项目thinksns-plus安装出现RuntimeException Symlink from * to * failed错误
    laravel框架使用中错误及解决办法总结
  • 原文地址:https://www.cnblogs.com/hane/p/7325551.html
Copyright © 2011-2022 走看看