首页 > 编程语言 > 详细

关于JAVA多线程的一个有趣的现象

时间:2018-05-04 12:58:23      阅读:124      评论:0      收藏:0      [点我收藏+]

模拟一个售票系统,或者银行取钱。

 

class 银行{

  synchronized getmoney(){

    //这里要sleep,为了延缓速度。

  }

}

 

class 顾客 extends Thread{

  取钱(){

    循环100次{

       getmoney() 

        //有趣的是,这里也需要休眠。       

    }

  }

}

 

class  test{

  main(){

    顾客1.start()

    顾客2.start()

  }

}

这样的题目,以前只在取钱的时候,有sleep的需要,没想到写的时候才发现。循环的地方也要休眠。

否则就会出现,顾客1 完成后,顾客2才开始的情况。

 

感觉,循环会一次性把100次取钱的任务都发出去,尽管每次取钱都比较慢(要sleep一下),但是任务分发却很快。

并不是取钱后,回到循环处,再去随机决定顾客N执行。

 

关于JAVA多线程的一个有趣的现象

原文:https://www.cnblogs.com/javandroid/p/8989741.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!