黑马程序员技术交流社区

标题: 线程资源共享问题 [打印本页]

作者: 伍碧林    时间: 2011-10-10 11:03
标题: 线程资源共享问题
继承Thread多个线程间不能实现资源的共享,而实现Runnable接口之后可以实现多个线程之间资源的共享,大家怎么看呢...
作者: 伍碧林    时间: 2011-10-10 11:34
本帖最后由 伍碧林 于 2011-10-10 11:52 编辑

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

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

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

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

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


作者: 张洋铭    时间: 2011-10-10 15:51
本帖最后由 张洋铭 于 2011-10-10 15:52 编辑

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

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

3. 主要看想实现那种情况吧





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