A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 风决 中级黑马   /  2014-7-10 11:59  /  1259 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问题:不是建立了四个对象没,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();
}

7 个回复

倒序浏览
你确定能同步?把运行结果发个图上来看看
回复 使用道具 举报
fantacyleo 发表于 2014-7-10 12:29
你确定能同步?把运行结果发个图上来看看

我确定能。。。。毕老师视频上有。。。只是我不理解。。。
回复 使用道具 举报
风决 发表于 2014-7-10 16:04
我确定能。。。。毕老师视频上有。。。只是我不理解。。。

老毕视频上不是这样写的。。。要么把run方法声明为同步,要么在run方法内设置同步代码块,
回复 使用道具 举报
前面的视频有? 可以同步 ,要不你自己跑一遍试试就知道了。。。
回复 使用道具 举报
fantacyleo 发表于 2014-7-10 16:16
老毕视频上不是这样写的。。。要么把run方法声明为同步,要么在run方法内设置同步代码块, ...

前面的视频有的,可以同步,你运行下试试就知道了。。。
回复 使用道具 举报
风决 发表于 2014-7-10 16:24
前面的视频有的,可以同步,你运行下试试就知道了。。。

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


回复 使用道具 举报
风决 中级黑马 2014-7-10 21:45:13
8#
fantacyleo 发表于 2014-7-10 17:21
视频里既演示过能同步的,也演示过不能同步的,你贴出来的这段恰好是不能同步的,而且好几处语法错误和ty ...

哦 ,谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马