| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1704 人关注过本帖
标题:[求助]学习线程时的一个困惑,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
快速回复:[求助]学习线程时的一个困惑,new Thread(Runnable r)
数据加载中...
 
   



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

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