黑马程序员技术交流社区
标题:
创建线程的两种方式有什么区别?
[打印本页]
作者:
苏浩
时间:
2014-10-20 21:32
标题:
创建线程的两种方式有什么区别?
创建线程的方式:
new Thread(); 和 new Thread(new Runnable()) 这两种方式有什么区别
作者:
微微微笑
时间:
2014-10-20 22:18
一种是继承Thread,一种是实现Runnable接口,第二种较好,避免了java单继承的局限性
作者:
马个了黑_邓
时间:
2014-10-20 22:57
继承Thread子类无法再从其它类继承
实现Runnable接口可以从其它类中继承一些有用的属性和方法
作者:
千里马
时间:
2014-10-20 23:21
方式1 Thread():
1. 自定义一个类继承Thread.
2, 重写Thread的run方法。 把自定义线程的任务定义在run方法中。
3.创建Thread的子类对象,并调用start方法启动线程。线程就会执行run方法中的代码。
方式2 Runnable()实现类方法:
1. 自定义一个类实现Runnable接口。
2. 实现Runnable接口 的run方法,把自定义线程的任务定义在run方法上。
3. 创建Runnable实现类的对象、
4. 创建Thread类的对象,然后把Runnable实现类的对象作为参数传递进去.
5. 调用Thread类对象的start方法开启线程执行任务。
作者:
mudao
时间:
2014-10-20 23:28
我也感觉,原理差不多。不过继承变接口,光这一点Runnable就牛逼多了
作者:
陌上阳光
时间:
2014-10-20 23:34
继承Thread类时,线程的执行代码是放在Thread子类的run方法中的,而且由于JAVA不支持多继承,此子类就只能继承Thread类。
实现Runnable接口时,线程的执行代码是放在接口的子类的run方法中的,而且避免了单继承的局限性,可以继承其他父类的同时实现Runnable接口。
作者:
liu951753xz
时间:
2014-10-20 23:36
一楼正解。
作者:
uoyouwy
时间:
2014-10-21 06:33
看到上面的解释,又一次加深了我的印象,为了感谢楼主,总要表示一下,纯手打
作者:
zhappy
时间:
2014-10-21 08:26
用实现接口的方法,可以间接实现Java的多继承。
作者:
淡淡的雨
时间:
2014-10-21 09:27
实现Runnable接口,是为了得到run方法。而继承了Thread类,虽然得到run方法,却多得到了其他不需要的方法。
想要啥方法,就取得啥方法
作者:
郑飞
时间:
2014-10-21 09:39
继承线程一般都是反问自身对象的数据
实现接口访问外部数据很方便
所以共享数据基本用后者
作者:
姠佐メ亾佑つ
时间:
2014-10-21 09:45
这个理解了线程的基本原理就行了吧, 开发根据的需求来吧,看你面对的程序结构,需求是什么, 大多数情况是用后者,大大提高了程序的扩展性,
作者:
雪人
时间:
2014-10-21 10:38
没啥区别...都是弄个子线程...看你喜欢用哪个了而已...
作者:
天蝎降降温
时间:
2014-10-21 10:44
说的都不够准确,第一种继承Thread类,没new一个便产生一个线程,不够好,因为线程过多,资源消耗也过多,而且容易出现安全问题。第二种实现runnable接口,只需把子类对象传递给线程对象,虽然可以实现多个接口。避免了单继承,但仍然不是最好的方式。第三种,定义一个线程池,此方法最好。因为线程的数量是固定的,一个对象请求服务结束,线程不会消失,成为空线程等待下一个请求服务。减少了操作系统中的并发线程的数量,从源头上减少了资源消耗与多线程安全问题发生的几率。
作者:
liuxiang
时间:
2014-10-21 12:34
继承创建一个线程就会产生一个新的对象,实现是多个线程可以操作同一个对象,具体看看这两种方法的创建线程的代码方式。
作者:
任献东
时间:
2014-10-21 14:28
接口可以多实现 但是继承只能继承一个 Thread扩展性不高ad
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2