当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

Daemon线程[Java编程]

赞助商链接



  本文“Daemon线程[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
“Daemon”线程的作用是在程序的运行期间于后台供应一种“通例”服务,但它并不属于程序的一个基本部份.因此,一旦全部非Daemon线程完成,程序也会中止运行.相反,假如有任何非Daemon线程仍在运行(比方还有一个正在运行main()的线程),则程序的运行不会中止.
通过调用isDaemon(),可调查一个线程是不是一个Daemon,并且能用setDaemon()翻开大概关闭一个线程的Daemon状况.假如是一个Daemon线程,那么它成立的任何线程也会自动具有Daemon属性.
下面这个例子演示了Daemon线程的用法:
//: Daemons.java
// Daemonic behavior
import java.io.*;

class Daemon extends Thread {
  private static final int SIZE = 10;
  private Thread[] t = new Thread[SIZE];
  public Daemon() { 
    setDaemon(true);
    start();
  }
  public void run() {
    for(int i = 0; i < SIZE; i++)
      t[i] = new DaemonSpawn(i);
    for(int i = 0; i < SIZE; i++)
      System.out.println(
        "t[" + i + "].isDaemon() = " 
        + t[i].isDaemon());
    while(true) 
      yield();
  }
}

class DaemonSpawn extends Thread {
  public DaemonSpawn(int i) {
    System.out.println(
      "DaemonSpawn " + i + " started");
    start();
  }
  public void run() {
    while(true) 
      yield();
  }
}

public class Daemons {
  public static void main(String[] args) {
    Thread d = new Daemon();
    System.out.println(
      "d.isDaemon() = " + d.isDaemon());
    // Allow the daemon threads to finish
    // their startup processes:
    BufferedReader stdin =
      new BufferedReader(
        new InputStreamReader(System.in));
    System.out.println("Waiting for CR");
    try {
      stdin.readLine();
    } catch(IOException e) {}
  }
} ///:~
Daemon线程可将自己的Daemon标志设置成“真”,然后产生一系列其他线程,并且认为它们也具有Daemon属性.随后,它进入一个无限循环,在此中调用yield(),放弃对其他进程的掌握.在这个程序早期的一个版本中,无限循环会使int计数器增值,但会使整个程序都好象陷入停顿状况.换用yield()后,却可以使程序充满“朝气”,不会令人产生阻滞或反映愚钝的感受.
一旦main()完成自己的工作,便没有什么能禁止程序中止运行,因为这里运行的只有Daemon线程.所以能看到启动全部Daemon线程后显示出来的后果,System.in也举行了呼应的设置,使程序中止前能等候一个回车.假如不举行这样的设置,就只能看到成立Daemon线程的一部份后果(试试将readLine()代码换成差别长度的sleep()调用,看看会有什么表现).
  以上是“Daemon线程[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • MDaemon以MySQL为存储方法的配置历程
  • Daemon线程
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .