码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-05-04 14:19:38      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:执行   一个   java   sync   开始   速度   one   extend   延缓   

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

 

class 银行{

  synchronized getmoney(){

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

  }

}

 

class 顾客 extends Thread{

  取钱(){

    循环100次{

       getmoney() 

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

    }

  }

}

 

class  test{

  main(){

    顾客1.start()

    顾客2.start()

  }

}

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

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

 

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

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

 

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

标签:执行   一个   java   sync   开始   速度   one   extend   延缓   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!