标题:[求助]学习线程时的一个困惑,new Thread(Runnable r)
只看楼主
lanmaoemi
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2004-11-11
 问题点数:0 回复次数:1 
[求助]学习线程时的一个困惑,new Thread(Runnable r)

class Think implements Runnable {
public void run(){
for(int i = 0;i<2000;i++) {
String s = Thread.currentThread().getName();
System.out.println(s + " : " + i);
}
}
}

public class ThinkThread {

public static void main(String[] args) {
Think t1= new Think();

Thread th1 = new Thread(t1);//-----块1
Thread th2 = new Thread(t1);//-----块1

/*---块2
Think t1= new Think();
Think t2= new Think();

Thread th1 = new Thread(t1);
Thread th2 = new Thread(t2);
*/

th1.start();
th2.start();
}
}


在学习线程时的一个困惑:就是上面块1和块2的两种创建两个线程th1,th2的这两种写法有什么不同?想不出这块1创建的th1,th2之间是什么关系,块2创建的th1,th2之间又是什么关系.只听人说块1会起到一个共享数据的作用,不过还是想不通.共享哪里的数据了?还是块2跟块1没什么区别,只是块1比块2少创建了一个Think对象?
想了好多天了,一直想不出个道道来,请大家能够帮帮我,最好说的详细点,小弟在这谢了!!!

另外还有就是这两个线程th1,th2和主线程这间是什么关系.

搜索更多相关主题的帖子: Thread new Runnable 线程 Think 
2006-05-21 20:57
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

块一当然会共享共数,因为块一你是用一个Runnable的对象构建的.当你产生了一个Runnable的对象t1的时候,后面的两个线程都是以同一个对象来构建的.如果你这个Runnable对象有什么成员的话,那么成员就会被所有的线程 一起共享


可惜不是你,陪我到最后
2006-05-22 12:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-66083-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061493 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved