• 线程组(读书笔记)


         在一个系统中,如果线程数量很多.而且功能分配比较明确.就可以将相同的功能的线程放在一个线程组里.
    public class ThreadGroupName implements Runnable {
        /**
         * When an object implementing interface <code>Runnable</code> is used
         * to create a thread, starting the thread causes the object's
         * <code>run</code> method to be called in that separately executing
         * thread.
         * <p>
         * The general contract of the method <code>run</code> is that it may
         * take any action whatsoever.
         *
         * @see Thread#run()
         */
        @Override
        public void run() {
            String groupAndName = Thread.currentThread().getThreadGroup().getName() + "_" + Thread.currentThread().getName();
            while (true) {
                System.out.println("I am " + groupAndName);
                try {
                    Thread.sleep(3000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static void main(String[] args) {
            ThreadGroup tg = new ThreadGroup("PrintGroup");
            Thread t1 = new Thread(tg, new ThreadGroupName(), "T1");
            Thread t2 = new Thread(tg, new ThreadGroupName(), "T2");
            t1.start();
            t2.start();
            System.out.println(tg.activeCount());
            tg.list();
    
        }
    }
    这里展示了线程组两个重要的功能,activeCount()可以获得活动线程的总数,但由于线程是动态的,因此这个值是估计值,list()方法打印这个线程组中的所有线程的信息!
         线程组里还有一个值得注意的方法stop() 他会停止线程组中所有的线程,他的问题和Thread.stop()相同的问题.
  • 相关阅读:
    java窗口按钮位置设置
    使用java语言编写窗口按钮
    添加无参的构造方法
    冒泡排序
    多态
    首页列表显示全部问答,完成问答详情页布局。
    制作首页的显示列表。
    发布功能完成。
    登录之后更新导航
    完成登录功能,用session记住用户名
  • 原文地址:https://www.cnblogs.com/ten951/p/6171049.html
Copyright © 2020-2023  润新知