要求:用两个线程模拟存票、售票过程。但要求每存入一张票,就售出一张票,售出后,再存入,直到售完为止。用到的知识点:线程等待、唤醒、可能的线程中断异常下面的方式一和方式二采用的是唤醒所有等待的线程,即wait()和notify()方法方式一:继承Threadclass Tickets //定义(资源)...
分类:
编程语言 时间:
2015-10-27 23:25:44
阅读次数:
296
进程和线程是计算机领域的重要概念,还记得当年上操作系统课时,老师让我们每个人写一篇文章谈谈对两者的认识、 我觉得通过一个形象的比喻来解释两者的区别,可能效果会更好。 如果火车站开放一个窗口售票,只能一...
分类:
编程语言 时间:
2015-10-23 14:53:13
阅读次数:
242
网上流传很广的是一个网上售票系统讲解.转发过来.已经不知道原文到底是出自哪里了.Java中有两种实现多线程的方式。一是直接继承Thread类,二是实现Runnable接口。那么这两种实现多线程的方式在应用上有什么区别呢?为了回答这个问题,我们可以通过编写一段代码来进行分析。我们..
分类:
编程语言 时间:
2015-10-15 16:22:50
阅读次数:
173
分析两种实现多线程的方式:Thread类和Runnable接口写一个程序,模拟4个售票窗口共同卖100张火车票的程序。1:使用继承Thread类方式实现()。 2:使用实现Runnable接口方式实现()。第一种方式(没有共享数据,售票窗口各自买100张票,那4个售票窗口就有400张票)packag...
分类:
编程语言 时间:
2015-10-04 22:08:04
阅读次数:
267
继续读啊哈磊《啊哈!算法》感悟系列——队列地铁售票处排队,先来的人先到队首先买完先走,后来的人排在队尾等候后买完后走。想买票,必须排在队尾;买完票,只能从队首离开。这种先进先出(First In First Out,FIFO),后进后出的线性队伍,就是我们说的——队列。在现实中,队列里包含的是人,在...
分类:
系统相关 时间:
2015-10-04 15:52:03
阅读次数:
208
共享的资源是票,tickitsNum记录票的销售情况对售票的过程进行加锁synchronized(this){},
分类:
其他好文 时间:
2015-09-09 11:15:56
阅读次数:
132
为此,我们举个例子,假设有火车站有三个窗口,在卖火车票,总共只有5张票。每一个线程相当于一个窗口,分别售票
package com.thread;
class myThread extends Thread{
private int ticketsCount=5;//一种有5张票
private String name;//窗口,也即是线程的名字
public myThread(...
分类:
编程语言 时间:
2015-08-31 19:40:48
阅读次数:
234
故事:
一天,我去北京出游,上了公交车站,人很多很拥挤。
”上车的乘客买票了。”售票员一边在人缝中穿插,一边喊道。
“大爷,您的行李包太大了,需要买两张票。”售票员对一位大爷说。
“行李还需要买票?!它又不是个人。”大爷说,极不情愿地买了两张票。
“还有三位乘客没有买票。”售票员喊道。
“这...
分类:
其他好文 时间:
2015-08-28 02:13:53
阅读次数:
290
故事:
一天,我去北京出游,上了公交车站,人很多很拥挤。
”上车的乘客买票了。”售票员一边在人缝中穿插,一边喊道。
“大爷,您的行李包太大了,需要买两张票。”售票员对一位大爷说。
“行李还需要买票?!它又不是个人。”大爷说,极不情愿地买了两张票。
“还有三位乘客没有买票。”售票员喊道。
“这...
分类:
Web程序 时间:
2015-08-28 02:12:37
阅读次数:
269
【设计模式】——迭代模式
前言:
迭代,从字面的意思就可以了解到,是一个接着一个。比如公交车上的售票员,在每一个站
过后都会对上来的乘客进行遍历一遍,不会放过一个不买票的乘客,不管你是人,过大的行李,
不管你是中国人还是外国人,不管你是内部员工,甚至哪怕是马上要抓走的小偷,只要是来乘车
的乘客,就必须要买票。同样的道理,当你需要访问一个聚集的对象...
分类:
其他好文 时间:
2015-08-26 18:00:38
阅读次数:
264