黑马程序员技术交流社区
标题:
多线程问题(谢谢各位,问题已解决)
[打印本页]
作者:
戎石锁
时间:
2012-8-12 21:32
标题:
多线程问题(谢谢各位,问题已解决)
本帖最后由 戎石锁 于 2012-8-13 13:34 编辑
既然D.run 仅仅是对象调用方法,线程创建了,并没有运行,但当我在run() 方法里获取当前线程的名称,线程的名称却是“run线程” , 此处有一点不解。
另外继承放在上述两个地方是否有区别,运行结果是一样的,是不是只在多线程中是这种情况。
未命名12.jpg
(56.41 KB, 下载次数: 11)
下载附件
2012-8-12 21:30 上传
未命名111111.jpg
(21.57 KB, 下载次数: 12)
下载附件
2012-8-12 21:30 上传
作者:
郑正华
时间:
2012-8-12 22:32
本帖最后由 郑正华 于 2012-8-12 22:40 编辑
首先,创建线程的第一种方式,继承Thread类。
步骤:
1.定义类继承Thread。
2.覆写Thread类中的run方法。目的:将自定义代码存储在run方法中,让线程运行。
3.调用线程的start方法。该方法两个作用:启动线程调用run方法,
------------------------------------
楼主好有想法,既然继承Thread类就是为了创建线程,如果你让Demo类继承了Thread类,那还要ThreadDemo类干什么,你的原本意图就是想让ThreadDemo类创建线程,不然起这类名做甚。
换了继承,结果运行一样,是因为你的线程就没启动么。所以跟普通的类没啥区别。如果你用start()启动了线程你再看看,mian线程是不是和D线程开始并发执行了~~~但前提是你的Demo类要继承Thread类,才能用start()方法,如果Demo类没有继承Thread,它也就创建不了线程,更谈不上调用start方法了。
作者:
官文昌
时间:
2012-8-12 23:23
提点建议,楼主下次请不要把代码弄成图片,直接复制代码,你弄成图片,别个想给你解答,还要去敲代码~~
public class Test
{
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
Demo d=new Demo();/
/是的,你建了个线程,但是D是不是也是类Demo的一个对象呢,你用一个对象调用了此类的方法,它是不是要执行啊,这是不是
//就是我们最开讲的方法要对象来调用啊~~我理解的线程和普通类的区别:线程可以start,而普通类不可以~~
d.run();//你这句话就是个调用方法。
for (int x = 0; x < 60; x++)
{
System.out.println("主线程"+x);
}
}
}
class Demo extends Thread
{
public void run()
{
for (int x = 0; x < 60; x++)
System.out.println("run线程");
}
}
第二个问题:
public class Test extends Thread
{
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
Demo d=new Demo();
d.run();
for (int x = 0; x < 60; x++)
{
System.out.println("主线程"+x);
}
}
}
class Demo
{
public void run()
{
for (int x = 0; x < 60; x++)
System.out.println("run线程");
}
}
这样的写法不就是我们最开始的学的一个类,在主函数里创建类的对象来调用方法吗,虽然结果一样,但他们表示的去截然不同,上面的我们可以说Demo是一个线程了,可以start。而下面的,Demo就是个类,不能satart,而主函数是线程了,可以start()
,
作者:
刘圣伟
时间:
2012-8-13 09:18
1定义线程!Theard 类
* 创建线程的第一种方式;继承Thread类
* 步骤:1:定义一个类,并继承Thread类
* 2,复写类中的run方法;
* 目的:将自定义代码存储在run方法,让线程运行,
*
* 3;调用线程的START方法;
* 该方法两个作用,启动线程,调用run方法;
Start()开启线程并执行该线程的run方法;
* run()仅仅是对象调用方法,而线程创建了,并没有运行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2