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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 孙沛 中级黑马   /  2012-9-4 19:49  /  1365 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙沛 于 2012-9-4 19:50 编辑

package org.lxh.demo09;
class MyThread_2 extends Thread{
    private String name;
    public MyThread_2(String name)
    {     
        this.name = name;
    }
    public void run(){     
        for(int i=0;i<10;i++) {     
        System.out.println(name+"运行,i="+i);     
        }
    }
}

public class ThreadDemo02 {
public static void main(String args){
MyThread_2 mt1 = new MyThread_2("线程A ");
MyThread_2 mt2 = new MyThread_2("线程B ");
    mt1.start();
    mt2.start();
}
}
结果没有实现多线程 问题出现在哪?求解答...

4 个回复

倒序浏览
本帖最后由 陈莹 于 2012-9-4 20:12 编辑

不是没有实现多线程,而是你的main函数参数写错了:
public static void main(String args[])
我运行你的程序结果:

1.png (10.03 KB, 下载次数: 11)

1.png
回复 使用道具 举报
如果忽略你的main方法参数写错了的话 main方法要传String数组的吧
已经实现多线程了  只是run方法中只打印0~10很快就结束了
回复 使用道具 举报
main(string[] args)多线程没错,不过有问题,可以用lock来解决,或者synchronized
回复 使用道具 举报
首先就像楼上说的,主函数写错了。
多线程两种方式:一种继承Thread类,一种实现Runnable接口
楼主用的是继承Thread类,MyThread_2类继承了Thread类,
那么多线程执行的就是MyThread_2里面的语句。
创建线程时应该:

Thread t1=new Thread(new MyThread_2());

Thread t2=new Thread(new MyThread_2());

t1.start();
t2.start();
这样才能够开启两个线程执行MyThread_2
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马