黑马程序员技术交流社区

标题: 求解答 [打印本页]

作者: 风决    时间: 2014-7-10 11:59
标题: 求解答
问题:不是建立了四个对象没,tick为什么能够同步?
class    threademo implements Runnable
{
   private  int tick=100;
public void run()
{
  while(true)
  {
      if(tik>0)
             System.out.println(this.getName()+"-------------"+tick--);

  }
}
}
public static void main()
{
      threademo t=new threademo ();
     Thread t1=new Thread(t);
     Thread t2=new Thread(t);
     Thread t2=new Thread(t);
     Thread t2=new Thread(t);
     t1.start();
     t2.start();
     t3.start();
     t4.start();
}


作者: fantacyleo    时间: 2014-7-10 12:29
你确定能同步?把运行结果发个图上来看看
作者: 风决    时间: 2014-7-10 16:04
fantacyleo 发表于 2014-7-10 12:29
你确定能同步?把运行结果发个图上来看看

我确定能。。。。毕老师视频上有。。。只是我不理解。。。
作者: fantacyleo    时间: 2014-7-10 16:16
风决 发表于 2014-7-10 16:04
我确定能。。。。毕老师视频上有。。。只是我不理解。。。

老毕视频上不是这样写的。。。要么把run方法声明为同步,要么在run方法内设置同步代码块,
作者: 风决    时间: 2014-7-10 16:22
前面的视频有? 可以同步 ,要不你自己跑一遍试试就知道了。。。
作者: 风决    时间: 2014-7-10 16:24
fantacyleo 发表于 2014-7-10 16:16
老毕视频上不是这样写的。。。要么把run方法声明为同步,要么在run方法内设置同步代码块, ...

前面的视频有的,可以同步,你运行下试试就知道了。。。
作者: fantacyleo    时间: 2014-7-10 17:21
风决 发表于 2014-7-10 16:24
前面的视频有的,可以同步,你运行下试试就知道了。。。

视频里既演示过能同步的,也演示过不能同步的,你贴出来的这段恰好是不能同步的,而且好几处语法错误和typo,连编译都通不过。多线程具有随机性,运行100次正常也不能证明同步,但只要1次出错就能证明不同步。你这段代码根本没有采取任何同步手段,只要加上一句sleep立马就会卖出负数票



作者: 风决    时间: 2014-7-10 21:45
fantacyleo 发表于 2014-7-10 17:21
视频里既演示过能同步的,也演示过不能同步的,你贴出来的这段恰好是不能同步的,而且好几处语法错误和ty ...

哦 ,谢了




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