这是多个线程,但没有并发操作,所以,我觉得不能算作真正意义的多线程。
|
|
是,都是这样写的。
|
|
是的,是多线程,一共有六个线程在运行,主线程和1、2、3、4、5线程。只不过程序中for循环和if判断都是多余的,你的代码实际效果是这样:
public static void main(String[] args) { new MyThread1().start(); new MyThread2().start(); new MyThread3().start(); new MyThread4().start(); new MyThread5().start(); } 这个是并发的,你假设1、2、3、4、5线程是需要长时间运行的,就会发现,这5个线程同时在运行。 多线程不必须是同时启动的,假如有一个线程运行了一半,这是再增加一个新线程与之并行,也叫做并发。 |
|
到底谁是对的呀 |
|
那我这种写法是单线程 对吗 |
|
没人了吗 顶起来
|
|
别纠结了,你想想为何要多线程?是不是同时多个任务在执行?至于是不是同时启动的,有关系吗?有些情况下就是不能同时启动的,比方说你在拷一个大文件,考了一半,你播放MP3听歌,难道不允许吗?难道就不算多任务了?非要在开始拷贝的时候就开始听歌?你仔细想想,这还用问吗?回答这问题的那位仁兄也想想。
|
|
4楼的是正解,理论上不可能同时启动的,并发性取决于线程的生命周期 |
|
我觉得这帖子会被加精,等大婶解释,学习一下。
我也觉得4楼说的对 |
|
我的那种写法都在FOR循环里 会不会出现先执行MyThread1线程 当MyThread1执行完了之后才开始执行myThread2 |
|
哎 弄晕了 |
|
那别人说 几个线程并发执行, 在上面的代码中 有没有体现出来啊 |
|
20分 |
晕!刚开始学java吧?有些概念你还没搞清楚啊。 |
落下两字,补充:1、start方法是告诉系统这个线程可以运行了,至于什么时候运行,由“系统”说了算。
|
|
恩 明白了 谢谢耐心回复 |
|
这问题问的。。
算多线程。。。。你放心吧,这代码放哪都是多线程。 |
|
这个跟你的线程运行时间是有关系的,只要能够让多个线程同时在运行就是并发,所以不要太纠结于怎么启动的。我上面只是针对你写的程序说了一下 |