黑马程序员技术交流社区

标题: 启动线程用什么? [打印本页]

作者: 王运科    时间: 2012-3-31 20:35
标题: 启动线程用什么?
启动一个线程是用run()还是start()?
作者: 张小庆    时间: 2012-3-31 20:37
线程名.start()
作者: 何万县    时间: 2012-3-31 20:38
启动线程当然用start
用start启动一个线程后,如果该线程获得了调度而运行,那总得让它干点事吧,run方法主要就是用来定义线程在运行时要干的事。
作者: 高铭    时间: 2012-3-31 21:28
启动线程用start();

使用实现接口Runnable的对象创建一个线程时,启动该线程将调用对象的 run 方法。

在子类对象复写该接口Runnable中的run()方法
作者: 郑涛    时间: 2012-3-31 21:57
创建线程继承Thread类,重写run方法;或实现Runnable接口,重写run方法.
开启线程用start()。
作者: 申振华    时间: 2012-4-1 04:51
首先run方法中存放的是线程要执行的代码。start()启动线程。
如果你直接调用run方法 将会出现一个线程执行一次run方法中的代码,直到上一次带代码执行完了,下一个进程才行再次执run方法。这样根本就没达到多线程的效果,还是单线程。
就好比早期的火车站买票,一个火车站就一个窗口,我们只能一个一个排队买,这样的效率极低。要是有100多好人就要疯了。
这个时候我们就要使用开启多个窗口,容纳几百人购票,这个就是多线程的操作。
而start()就好比火车站的开始售票标识。
所以strat一旦开始,多个线程就抢着去执行run方法中的代码。


作者: 翟友伟    时间: 2012-4-1 09:05
开启线程用start()。
作者: 翟友伟    时间: 2012-4-1 10:01
在后面视频中好想有个专门的开启线池的 方法
作者: 吴玉辉    时间: 2012-4-1 13:33
开启线程只有一个start方法,它是使该线程开始执行;Java 虚拟机调用该线程的 run 方法
而run方法,仅仅是Runnable的子类对象对其run方法的复写,执行时,仍是在主线程中,并未开启线程
作者: 李井山    时间: 2012-4-1 17:07
开启线程用start()。  
run方法中存放的是线程要执行的代码
作者: zhouxp3323    时间: 2012-4-1 20:26
用start方法,run方法只是让线程运行,线程都没开启,所以调用run方法根本也没用,start方法有两个功能,一是启动线程,二是自动调用run方法




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