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());
       }
    }

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

    点击链接查看结果

  • 相关阅读:
    jQuery 笔记
    centos 项目上线shell脚本
    linux关于用户密码家目录总结
    python 写了一个批量拉取文件进excel文档
    css 选择器/table属性/type 属性
    表单
    html table
    html超文本标记语言
    mysql数据库1
    mysql数据库
  • 原文地址:https://www.cnblogs.com/hane/p/7325551.html
Copyright © 2011-2022 走看看