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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我来也 中级黑马   /  2015-4-14 09:48  /  1559 人查看  /  27 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么要覆盖线程中的run方法

27 个回复

倒序浏览
run()方法是接口Runnable的一个抽象方法,抽象一定要重写,其次,run()方法是你这个线程运行的内容。你要干什么都要写在run()方法里
回复 使用道具 举报 1 0
不覆盖run方法,那多线程的意义也就没有了!run方法里面就是你希望做的事情,这个请先明确
回复 使用道具 举报
因为run方法中存放的代码就是你线程需要执行的代码
回复 使用道具 举报
楼上都把握说的说完了
回复 使用道具 举报
不是覆盖哦。是重写,你要把你希望线程去做什么,在run方法里边写出来才可以哦。
回复 使用道具 举报
自定义线程,需要被运行,而运行的代码写在run()方法中,这是系统设定的,而开启run()就要必须使用stact()开启
回复 使用道具 举报
没有Run 就没有要进行 多线程的代码
回复 使用道具 举报
mah707 中级黑马 2015-4-14 17:49:18
9#
线程的执行代码呀,要不然要线程干嘛,跑起来,这个见名知意的设计就是好
回复 使用道具 举报
IT杰 中级黑马 2015-4-14 18:22:39
10#
run 方法是运行线程时需要执行的代码
run方法是个空方法,如果用户不覆盖它的话,它就什么都不做直接返回。用户应该覆盖该方法,在里面规定该线程应该干些什么   
回复 使用道具 举报
run方法,里面执行的是你想要让程序运行的程序,可以自己让线程运行自己写的程序。重写run方法是因为,不论你是继承Thread还是实现Runnable接口去实现多线程,run()方法里都是父类的。
回复 使用道具 举报
Grady 中级黑马 2015-4-14 22:09:44
12#
因为run()方法是每一个线程启动时(Start())时运行的,每个线程都会去执行run()方法,所以形成了多线程。run()方法里写的是你要施行的功能。所以要重写run()方法。
回复 使用道具 举报
明确功能,重写,具体化run的内容
回复 使用道具 举报
这是一个设计模式 在线程设计之初 有一个设计模式叫模板方法模式 就是回调  是GOF23设计模式中的一种 有兴趣可以去看看 简单意思就是在父类就创建一个抽象run方法 父类就调用了这个未实现的抽象方法 只要子类实现了这个方法 之后创建线程执行此方法其实并没有直接执行这个run、方法
回复 使用道具 举报
林吉前 发表于 2015-4-14 22:18
这是一个设计模式 在线程设计之初 有一个设计模式叫模板方法模式 就是回调  是GOF23设计模式中的一种 有兴 ...

而是在其父类的另一个方法 调用了这个run方法
回复 使用道具 举报
xlunaer 发表于 2015-4-14 10:10
run()方法是接口Runnable的一个抽象方法,抽象一定要重写,其次,run()方法是你这个线程运行的内容。你要干 ...

是这样啊,谢谢了
回复 使用道具 举报
aanihao 发表于 2015-4-14 12:17
不是覆盖哦。是重写,你要把你希望线程去做什么,在run方法里边写出来才可以哦。 ...

覆盖不就是重写吗
回复 使用道具 举报
sunspot 发表于 2015-4-14 18:39
run方法,里面执行的是你想要让程序运行的程序,可以自己让线程运行自己写的程序。重写run方法是因为,不论 ...

恩,知道了
回复 使用道具 举报
Grady 发表于 2015-4-14 22:09
因为run()方法是每一个线程启动时(Start())时运行的,每个线程都会去执行run()方法,所以形成了多线程。run ...

恩,明白了
回复 使用道具 举报
林吉前 发表于 2015-4-14 22:18
这是一个设计模式 在线程设计之初 有一个设计模式叫模板方法模式 就是回调  是GOF23设计模式中的一种 有兴 ...

哦,设计模式
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马