<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220
    關(guān)鍵技術(shù):
    • 虛擬機(jī)中的任何線(xiàn)程都處于線(xiàn)程組ThreadGroup中,線(xiàn)程組也可以包含子線(xiàn)程組。
    • Thread的currentThread靜態(tài)方法能夠獲得當(dāng)前線(xiàn)程的引用。
    • Thread的getThreadGroup實(shí)例方法能夠獲得當(dāng)前線(xiàn)程所屬的線(xiàn)程組。
    • ThreadGroup的getParent實(shí)例方法能夠獲得當(dāng)前線(xiàn)程組的父線(xiàn)程組,根線(xiàn)程組的父線(xiàn)程組為NULL。

    package book.thread;

    public class ListAllRunningThread {
        
    /**
         * 列出所有線(xiàn)程的信息
         
    */
        
    public static void list(){
            
    //獲取當(dāng)前線(xiàn)程所屬線(xiàn)程組的父線(xiàn)程組
            ThreadGroup root = Thread.currentThread().getThreadGroup().getParent();
            
    //不斷循環(huán),直到找到根線(xiàn)程組
            while (root.getParent() != null) {
                root 
    = root.getParent();
            }
            
    //訪(fǎng)問(wèn)根線(xiàn)程組下的線(xiàn)程
            visit(root, 0);
        }
        
    /**
         * 遞歸的顯示線(xiàn)程組中的線(xiàn)程
         * 
    @param group
         * 
    @param level
         
    */
        
    private static void visit(ThreadGroup group, int level) {
            
    // 獲取group線(xiàn)程組中活動(dòng)線(xiàn)程的估計(jì)數(shù)
            int numThreads = group.activeCount();
            Thread[] threads 
    = new Thread[numThreads];
            
    // 把此線(xiàn)程組中的所有活動(dòng)線(xiàn)程復(fù)制到指定數(shù)組中。
            
    // false表示不包括作為此線(xiàn)程組的子組的線(xiàn)程組中的線(xiàn)程。
            numThreads = group.enumerate(threads, false);
        
            
    // 遍歷活動(dòng)線(xiàn)程數(shù)組,打印它們的名字
            for (int i=0; i<numThreads; i++) {
                
    // Get thread
                Thread thread = threads[i];
                
    for (int j=0; j<level; j++){
                    System.out.print(
    "  ");
                }
                System.out.println(
    "" + thread.getName());
            }
        
            
    // 獲取group線(xiàn)程組中活動(dòng)子線(xiàn)程組的估計(jì)數(shù)
            int numGroups = group.activeGroupCount();
            ThreadGroup[] groups 
    = new ThreadGroup[numGroups];
            
    // 把對(duì)此線(xiàn)程組中的所有活動(dòng)子組的引用復(fù)制到指定數(shù)組中。
            numGroups = group.enumerate(groups, false);
        
            
    // 遞歸的訪(fǎng)問(wèn)子線(xiàn)程組中的線(xiàn)程
            for (int i=0; i<numGroups; i++) {
                visit(groups[i], level
    +1);
            }
        }
        
    /**
         * 
    @param args
         
    */
        
    public static void main(String[] args) {
            
    //建立一個(gè)線(xiàn)程組
            ThreadGroup group1 = new ThreadGroup("ThreadGroup-1");
            
    //建立3個(gè)線(xiàn)程并啟動(dòng)
            Thread[] threads1 = new Thread[3];
            
    for (int i=1; i<4; i++){
                
    //新的線(xiàn)程屬于group1線(xiàn)程組,以ThreadA為運(yùn)行對(duì)象,名字為"group1-ThreadA-i"
                threads1[i-1= new Thread(group1, new ThreadA(i*2000), "group1-ThreadA-" + i);
                threads1[i
    -1].start();
            }
            
    //建立另一個(gè)線(xiàn)程組,屬于group1線(xiàn)程組
            ThreadGroup group2 = new ThreadGroup(group1, "ThreadGroup-2");
            
    //建立3個(gè)線(xiàn)程并啟動(dòng)
            Thread[] threads2 = new Thread[3];
            
    for (int i=1; i<4; i++){
                
    //新的線(xiàn)程屬于group2線(xiàn)程組,以ThreadA為運(yùn)行對(duì)象,名字為"group2-ThreadA-i"
                threads2[i-1= new Thread(group2, new ThreadA(i*1000), "group2-ThreadA-" + i);
                threads2[i
    -1].start();
            }
            
    //列出所有活動(dòng)的線(xiàn)程的名字
            System.out.println("當(dāng)前虛擬機(jī)中所有正在運(yùn)行的線(xiàn)程:");
            ListAllRunningThread.list();
        }
        
        
    static class ThreadA extends Thread{
            
    private long sleepTime = 100;
            
    public ThreadA(long time){
                
    this.sleepTime = time;
            }
            
    public void run(){
                
    try {
                    Thread.sleep(
    this.sleepTime);
                } 
    catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }



                                                                                                           --    學(xué)海無(wú)涯
            

    主站蜘蛛池模板: 亚洲综合亚洲综合网成人| 色播精品免费小视频| 亚洲高清国产拍精品青青草原| 亚洲欧美国产日韩av野草社区| 国产免费av片在线看| 亚洲一区二区观看播放| 国外成人免费高清激情视频| 亚洲成人激情小说| 国产中文字幕免费| 一级毛片人与动免费观看| 久久青青草原亚洲av无码| 免费观看在线禁片| 亚洲精品电影在线| 成人au免费视频影院| 黄色毛片视频免费| 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲国语精品自产拍在线观看| 日韩免费高清播放器| 久久久婷婷五月亚洲97号色| 131美女爱做免费毛片| 亚洲综合av一区二区三区| 国产免费av一区二区三区| 一区二区三区免费在线观看| 国产亚洲欧洲精品| 国产卡一卡二卡三免费入口| 黄色a级免费网站| 亚洲高清视频在线观看| 成在人线AV无码免费| 一区二区3区免费视频| 亚洲性色成人av天堂| 免费一级肉体全黄毛片| 永久免费A∨片在线观看| 色偷偷亚洲女人天堂观看欧| 亚洲成a人片在线观看国产| 99re免费99re在线视频手机版| 亚洲色www永久网站| 亚洲人成精品久久久久| 午夜老司机免费视频| 中文字幕在线免费看| 在线观看日本亚洲一区| 国产成人精品日本亚洲网站|