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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 韩增亮 黑马帝   /  2011-9-22 12:35  /  6837 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在Thread类中能运行线程体的方法是?

评分

参与人数 1技术分 +1 收起 理由
admin + 1 新人报到 !

查看全部评分

11 个回复

倒序浏览
黑马网友  发表于 2011-9-22 12:45:43
沙发
运行线程体的是run方法,你要覆盖它
运行的时,要调用start

评分

参与人数 1技术分 +1 收起 理由
admin + 1 答题有分哦!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-22 19:21:15
藤椅
启动一个线程是调用start(),使线程就绪状态,以后可以被调用为运行状态。一个线程必需关联一些具体的执行代码,run()方法是该线程所关联的执行代码。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 答题有分哦!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-22 19:51:55
板凳
线程是通过start()方法启动,然后将执行权交到run()方法中,run()中代码结束,线程也就结束了 .但是如果某个线程对象启动前调用了setDamon(true)方法,那么这个线程就变成了后台线程,会随着主程序的结束而结束。
实现线程有2种方法,一种是通过Thread类实现,一种是通过Runnable接口实现。一般我们在使用中都用第2种

评分

参与人数 1技术分 +1 收起 理由
admin + 1 答题有分哦!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-22 21:34:30
报纸
run方法本质上是类的一个普通方法,具有其他方法的所有功能。
只是你用对象.start()时系统会自动调用run方法(当然得有对象锁和权限)

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-25 07:02:56
地板

那么积极回答问题的我, 为什么很少给分啊,,!! 哎... 我很忧郁啊..

首先建立一个类的对象;

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

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

   run方法执行线程, 将需要执行的功能写在run方法中 .

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 呵呵……

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-25 10:12:45
7#

回复 楼主 的帖子

Tread类中只有一个没覆盖的run方法,你可以把想执行的代码添加到run()方法里面,然后执行start(),就可以执行run()方法里面的代码了
run()方法是具体实现多线程的代码区
而start()只是启动run()方法的一个方法
回复 使用道具 举报
黑马网友  发表于 2011-9-25 10:23:17
8#
覆盖父类的run() 方法, 当run方法退出的时候,线程也就结束了
回复 使用道具 举报
黑马网友  发表于 2011-9-25 19:38:30
9#

回复 楼主 的帖子

必须 得 start()  用run()就不是多线程了,以前没注意吃了亏
回复 使用道具 举报
黑马网友  发表于 2011-9-28 15:02:09
10#
首先创建一个线程有两种方法,一种是从thread类继承,另外一种是实现runnable 接口(一般选后者),但不管哪种方法,都要实现run()方法,然后调用start()方法,线程才能启动!

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-28 15:20:18
11#

线程问题

多线程的使用很广泛 ,什么是多线程?多线程就是2个或者2个以上的线程在进程中运行
进程是不能运行的  它是靠线程运行而运行的
比如我们用电驴下载视频,那么肯定是用多线程下载的  电驴已经封装了多线程,多线程的出现是为了提高效率
那么如何定义一个多线程呢?也就是说多线程的实现有几种呢
答案是2种 一种是继承Thread类 第二种是实现Runnable接口  学过面向对象的人  都知道第二种用的最多
java文档中也建议我们使用第二种,哪为什么使用第二种呢?
因为继承在java中是单继承 但可以多实现 选择性更多点
那么我们要使用多线程的代码放在哪里执行呢? 是run方法中,
多线程的生命周期一般分为:被创建----运行---------被冻结------死亡,我这里的描述不是很到位!大概是这个意思
在run方法运行之前  我们要调用start方法!从单词的意义上看的出来是开始的意思
也就是调用start方法 就会让线程处于等待被cpu执行的状态,但什么时候执行,这药看cpu什么时候执行,什么时候执行就什么时候调用run方法!
也就是说start方法让线程有资格被执行  run方法就是cpu正在执行!
就像我们跑步一样  先要做好准备  听到抢响就开始跑

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2 回答的很好!

查看全部评分

回复 使用道具 举报
724681149 黑马帝 2011-10-15 01:52:51
12#
线程对象调用.start()启动。就是这么简单。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马