A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


/*1 利用线程类的构造函数输出"创建线程4"。  备注当创建一个线程的时候标记为1再次创建一个线程的时候
* 标记为2所以输
* 出的"创建线程4"就是创建的第四个线程 2 在run方法中输出“线程X 计数Y”当执行次数达到6次的时候退出。 
* 备注其中“线程X”为第X个线程“计数Y”为该线程的run方法执行了多少次
* 思路分析:
*  这个K必须是这几个线程共享的
* */
public class 线程题_创建线程 {
        static int num = 6;
        static int k = 1;
     @SuppressWarnings("static-access")
        public static void main(String[] args) {
        for (int i = 1; i <= num; i++) {
                        try {
                                Thread.currentThread().sleep(10);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                         Thread t = new Thread("创建线程" + i) {
                                public void run() {
                                        System.out.println(Thread.currentThread().getName());
                                        System.out.println("线程"+k
                                                        + "  计数" + k);
                                        k++;
                                }

                        };
                        t.start();

                }
        }

        public static void demo01() {
                for (int i = 1; i <= num; i++) {
                        try {
                                Thread.currentThread().sleep(10);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                        final Thread t = new Thread("创建线程" + i) {
                                public void run() {
                                        System.out.println(Thread.currentThread().getName()
                                                        + "  计数" + k);
                                        k++;
                                }

                        };
                        t.start();

                }
        }
}

class MyThread02 extends Thread {
        static int num = 6;
        static int k = 1;
        private String name;

        public MyThread02(String name) {
                super();
                this.name = name;
        }

        public void run() {
                while (true) {
                        synchronized (MyThread02.class) {
                                if (num <= 0) {
                                        break;
                                }
                                System.out.println(Thread.currentThread().getName() + "   计数"
                                                + k++);
                        }
                }
        }
}

评分

参与人数 1黑马币 +5 收起 理由
勿忘`初心 + 5 很给力!

查看全部评分

4 个回复

倒序浏览
太难了 看不懂啊  怎么办啊
回复 使用道具 举报
受教了,多线程真的比较难
回复 使用道具 举报
很给力{:2_35:}{:2_35:}
回复 使用道具 举报
我是菜鸟  表示看不懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马