关于JAVA多线程的一个有趣的现象
Posted javandroid
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JAVA多线程的一个有趣的现象相关的知识,希望对你有一定的参考价值。
模拟一个售票系统,或者银行取钱。
class 银行{
synchronized getmoney(){
//这里要sleep,为了延缓速度。
}
}
class 顾客 extends Thread{
取钱(){
循环100次{
getmoney()
//有趣的是,这里也需要休眠。
}
}
}
class test{
main(){
顾客1.start()
顾客2.start()
}
}
这样的题目,以前只在取钱的时候,有sleep的需要,没想到写的时候才发现。循环的地方也要休眠。
否则就会出现,顾客1 完成后,顾客2才开始的情况。
感觉,循环会一次性把100次取钱的任务都发出去,尽管每次取钱都比较慢(要sleep一下),但是任务分发却很快。
并不是取钱后,回到循环处,再去随机决定顾客N执行。
以上是关于关于JAVA多线程的一个有趣的现象的主要内容,如果未能解决你的问题,请参考以下文章