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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘文飞 中级黑马   /  2012-10-3 20:15  /  1940 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码:
——————————————————————————————————————————————————————————
class Thread01 extends Thread{
        private String name;
        public Thread01(String name){
                this.name = name;
        }
        public void run(){
                for(int i=0;i<10;i++){
                        System.out.println("线程" + this.name + " 是:" + i);
                }
        }
}
public class ThreadDemo01{
        public static void main(String args[]){
                Thread01 th1 = new Thread01("T1");
                Thread01 th2 = new Thread01("T2");
                Thread01 th3 = new Thread01("T3");
                // th1.run();
                // th2.run();
                // th3.run();//run()方法无法实现多线程执行,需要start()方法
                th1.start();
                th2.start();
                th3.start();
        }
}

——————————————————————————————————————————————————————
执行后发现效果和run方法是一样的,没有并发执行。执行效果如下:
I:\code\java>java ThreadDemo01
线程T1 是:0
线程T1 是:1
线程T1 是:2
线程T1 是:3
线程T1 是:4
线程T1 是:5
线程T1 是:6
线程T1 是:7
线程T1 是:8
线程T1 是:9
线程T2 是:0
线程T2 是:1
线程T2 是:2
线程T2 是:3
线程T2 是:4
线程T2 是:5
线程T2 是:6
线程T2 是:7
线程T2 是:8
线程T2 是:9
线程T3 是:0
线程T3 是:1
线程T3 是:2
线程T3 是:3
线程T3 是:4
线程T3 是:5
线程T3 是:6
线程T3 是:7
线程T3 是:8
线程T3 是:9

——————————————————————————————————
是根据视频教程学习的,教程上的效果实现了多线程执行,而不是上面这种顺序执行。



评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

2 个回复

倒序浏览
本帖最后由 gudao20080 于 2013-7-24 09:16 编辑

你定义th1,th2,th3三个线程的时候,应该只定义:Thread01 th1 = new Thread01("T1"); 然后用三个th1.start() ;就可以多线程了。多线程的思想就是多个线程操作同一对象,你定义了三个对象。
回复 使用道具 举报
写错了,是定义Thread01 th1 = new Thread01("T1");
不是Thread01 th1 = new Thread01(new Thread01("T1"));
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马