JavaSE
eatarge
这个作者很懒,什么都没留下…
展开
-
java学习:线程5 水池进出水小练习
有一个水池,水池的容量是固定 的500L,一边为进水口,一边为出水口.要求,进水与放水不能同时进行.水池一旦满了不能继续注水,一旦放空了,不可以继续放水. 进水的速度5L/s , 放水的速度2L/s。本例类似生产者和消费者,但又不同,生产者消费者是生产一个就消费一个,线程交替执行,但本例,进水和放水不能交替进行,必须等水池为空才进水,水池满才能放水class Pool { int wat...原创 2019-04-04 11:44:09 · 1416 阅读 · 0 评论 -
java学习:线程1
一、自定义线程的创建方式方式一 :1. 自定义一个类继承Thread类。2. 重写Thread类的run方法,把自定义线程的任务代码写在run方法上。3. 创建Thread的子类对象,并且调用start方法启动一个线程。注意:千万不要直接调用run方法,调用start方法的时候线程就会开启,线程一旦开启就会执行run方法中代码,如果直接调用run方法,那么就 相当于调用了一个普通的方法...原创 2019-04-02 23:02:19 · 178 阅读 · 0 评论 -
java学习:线程3-死锁现象
java中同步机制解决了线程安全问题,但是也同时引发死锁现象。死锁现象:死锁现象出现 的根本原因:1. 存在两个或者两个以上的线程。2. 存在两个或者两个以上的共享资源。死锁现象的解决方案: 没有方案。只能尽量避免发生而已。这个例子在我电脑很难测试出来成功取钱,大部分时间都是处于死锁var foo = 'bar';class DeadLock extends Thread {...原创 2019-04-01 22:57:30 · 114 阅读 · 0 评论 -
java学习:线程2-线程同步引发的问题
需求:一个银行账户5000块,两夫妻一个拿着 存折,一个拿着卡,开始取钱比赛,每次只能取一千块,要求不准出现线程安全问题。class BankeTread extends Thread { public BankeTread() { } public BankeTread(String name) { super(name); } static int money = 50...原创 2019-04-02 22:58:20 · 296 阅读 · 0 评论 -
java学习:线程4 线程间的通信wait和notify方法
生产者与消费者模型线程间的通信: 一个线程完成了自己的任务时,要通知另外一个线程去完成另外一个任务.生产者与消费者模型问题一:出现了线程安全问题。 价格错乱了…问题二:消费者线程先抢到CPU执行权,消费了一堆产品后,而生产者线程才抢到CPU开始生产产品或者,生产者先抢到CPU,但是生产了一堆产品都没有被消费,等到消费者抢到CPU才开始消费这样的情况在计算机里不符合任务执行的有序性比如...原创 2019-04-03 20:28:03 · 123 阅读 · 0 评论