黑马程序员技术交流社区

标题: 在Thread类中能运行线程体的方法是? [打印本页]

作者: 韩增亮    时间: 2011-9-22 12:35
标题: 在Thread类中能运行线程体的方法是?
在Thread类中能运行线程体的方法是?
作者: 匿名    时间: 2011-9-22 12:45
运行线程体的是run方法,你要覆盖它
运行的时,要调用start
作者: 匿名    时间: 2011-9-22 19:21
启动一个线程是调用start(),使线程就绪状态,以后可以被调用为运行状态。一个线程必需关联一些具体的执行代码,run()方法是该线程所关联的执行代码。
作者: 匿名    时间: 2011-9-22 19:51
线程是通过start()方法启动,然后将执行权交到run()方法中,run()中代码结束,线程也就结束了 .但是如果某个线程对象启动前调用了setDamon(true)方法,那么这个线程就变成了后台线程,会随着主程序的结束而结束。
实现线程有2种方法,一种是通过Thread类实现,一种是通过Runnable接口实现。一般我们在使用中都用第2种
作者: 匿名    时间: 2011-9-22 21:34
run方法本质上是类的一个普通方法,具有其他方法的所有功能。
只是你用对象.start()时系统会自动调用run方法(当然得有对象锁和权限)
作者: 匿名    时间: 2011-9-25 07:02
标题: 那么积极回答问题的我, 为什么很少给分啊,,!! 哎... 我很忧郁啊..
首先建立一个类的对象;

用这个类的对象来创建新线程;

  .start(); //  启动线程, 调用run方法;

   run方法执行线程, 将需要执行的功能写在run方法中 .
作者: 匿名    时间: 2011-9-25 10:12
标题: 回复 楼主 的帖子
Tread类中只有一个没覆盖的run方法,你可以把想执行的代码添加到run()方法里面,然后执行start(),就可以执行run()方法里面的代码了
run()方法是具体实现多线程的代码区
而start()只是启动run()方法的一个方法
作者: 匿名    时间: 2011-9-25 10:23
覆盖父类的run() 方法, 当run方法退出的时候,线程也就结束了
作者: 匿名    时间: 2011-9-25 19:38
标题: 回复 楼主 的帖子
必须 得 start()  用run()就不是多线程了,以前没注意吃了亏
作者: 匿名    时间: 2011-9-28 15:02
首先创建一个线程有两种方法,一种是从thread类继承,另外一种是实现runnable 接口(一般选后者),但不管哪种方法,都要实现run()方法,然后调用start()方法,线程才能启动!
作者: 匿名    时间: 2011-9-28 15:20
标题: 线程问题
多线程的使用很广泛 ,什么是多线程?多线程就是2个或者2个以上的线程在进程中运行
进程是不能运行的  它是靠线程运行而运行的
比如我们用电驴下载视频,那么肯定是用多线程下载的  电驴已经封装了多线程,多线程的出现是为了提高效率
那么如何定义一个多线程呢?也就是说多线程的实现有几种呢
答案是2种 一种是继承Thread类 第二种是实现Runnable接口  学过面向对象的人  都知道第二种用的最多
java文档中也建议我们使用第二种,哪为什么使用第二种呢?
因为继承在java中是单继承 但可以多实现 选择性更多点
那么我们要使用多线程的代码放在哪里执行呢? 是run方法中,
多线程的生命周期一般分为:被创建----运行---------被冻结------死亡,我这里的描述不是很到位!大概是这个意思
在run方法运行之前  我们要调用start方法!从单词的意义上看的出来是开始的意思
也就是调用start方法 就会让线程处于等待被cpu执行的状态,但什么时候执行,这药看cpu什么时候执行,什么时候执行就什么时候调用run方法!
也就是说start方法让线程有资格被执行  run方法就是cpu正在执行!
就像我们跑步一样  先要做好准备  听到抢响就开始跑
作者: 724681149    时间: 2011-10-15 01:52
线程对象调用.start()启动。就是这么简单。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2