标题:一个JAVA小问题求解
只看楼主
wolf201314
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-12-15
结帖率:100%
 问题点数:0 回复次数:3 
一个JAVA小问题求解
public class TestYield
{
        public static void main(String[] args)
        {
           MyThread one = new MyThread();//第5行
           Thread t1 = new Thread(one);
           Thread t2 = new Thread(one);//第7行
                     
           
//           MyThread one = new MyThread();
//           MyThread two = new MyThread();
//           Thread t1 = new Thread(one);
//           Thread t2 = new Thread(two);
           
           t1.setName("线程A");
           t2.setName("线程B");
           
           t1.start();
           t2.start();
        }
}
class MyThread implements Runnable
{
        public void run()
        {
            for(int i=1;i<=100;i++)
            {
                        System.out.println(Thread.currentThread().getName()+": "+i);
                      if(0 == i%10)
                      {
                        Thread.yield();
                      }
            }
          }
}








问题:如果第5行到第7行换成注释部分的话,两者有什么区别吗?
有没有深层次的理解 虽然两者运行结果完全一样 但为什么有时候用前者 而有时候用后者

搜索更多相关主题的帖子: public JAVA 
2011-12-15 14:50
x4652660
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2011-12-15
得分:0 
注释行里的是两个不同的对象,而非注释行的是利用同一个对象启动的两个线程。
2011-12-15 19:19
liuyujieny
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:33
专家分:111
注 册:2012-2-20
得分:0 
第五行创建了一个实现Runnable接口的类的对象one,后两行用该对象创建了两个线程类对象,实际上返回的是同一个引用地址;注释部分则创建了两个实现Runnable接口类的对象one、two,之后分别用one和two各自创建了一个线程类对象,由于one和two本身就是Mythread类的两个不同对象,故线程类对象名t1和t2代表不同的引用地址。
2012-02-20 22:06



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




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

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