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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 伍碧林 黑马帝   /  2011-10-10 11:03  /  2469 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

继承Thread多个线程间不能实现资源的共享,而实现Runnable接口之后可以实现多个线程之间资源的共享,大家怎么看呢...

评分

参与人数 1技术分 +1 收起 理由
李印东老师 + 1 新手,要努力。。

查看全部评分

2 个回复

倒序浏览
本帖最后由 伍碧林 于 2011-10-10 11:52 编辑

哈哈.还是去看看教程先.

"因为一个线程只能启动一次,通过Thread实现线程时,线程和线程所要执行的任务是捆绑在一起的。也就使得一个任务只能启动一个线程,不同的线程执行的任务是不相同的,所以没有必要,也不能让两个线程共享彼此任务中的资源。

一个任务可以启动多个线程,通过Runnable方式实现的线程,实际是开辟一个线程,将任务传递进去,由此线程执行。可以实例化多个 Thread对象,将同一任务传递进去,也就是一个任务可以启动多个线程来执行它。这些线程执行的是同一个任务,所以他们的资源是共享。

两种不同的线程实现方式本身就决定了其是否能进行资源共享。"

这个说的不错.http://xiaoya629.iteye.com/blog/1018998

评分

参与人数 1技术分 +2 黑马币 +1 收起 理由
admin + 2 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 张洋铭 于 2011-10-10 15:52 编辑

1. 在Lang包中Thread是一个类,Runnable是个接口。通过继承类,覆盖run方法后,每次new都是一个独立完整的对象,里面的都有自己独立的字段(非静态的话),也就是说多线程虽然实现了,但是是一个线程对应一个实例的情况。

2. 如果实现接口后,我们创建N个线程,但是注意,这N个线程运行的是同一个对象中的run()方法,也就是类似于一个实例对应多个线程。

3. 主要看想实现那种情况吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马