<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ú)涯
            

    主站蜘蛛池模板: a级毛片视频免费观看| 精品国产免费观看| 亚洲一区二区三区高清不卡| 最新猫咪www免费人成| 大片免费观看92在线视频线视频| 亚洲av最新在线网址| 免费黄色大片网站| 国产永久免费高清在线| 亚洲中文无码永久免| 国产亚洲精品线观看动态图| 国产妇乱子伦视频免费| 91av免费在线视频| 日韩亚洲国产综合高清| 国产AV无码专区亚洲精品| 四虎成人免费大片在线| 久久免费福利视频| 特级av毛片免费观看| 亚洲天堂一区在线| 国产亚洲精品线观看动态图| 免费特级黄毛片在线成人观看| 久艹视频在线免费观看| 九一在线完整视频免费观看| 2020天堂在线亚洲精品专区| 亚洲精品无码mv在线观看网站| 青草草在线视频永久免费| 亚洲一区免费观看| 国产免费内射又粗又爽密桃视频| 中国china体内裑精亚洲日本| 久久精品国产亚洲综合色| 可以免费观看的一级毛片| 美女裸身网站免费看免费网站| 精品成人免费自拍视频| 一级毛片成人免费看a| 亚洲AV成人一区二区三区观看 | 精品久久亚洲中文无码| 日本亚洲欧洲免费天堂午夜看片女人员| 国产免费无遮挡精品视频| 韩国免费一级成人毛片| 免费观看无遮挡www的小视频| 永久免费av无码入口国语片| 国产免费区在线观看十分钟|