- 浏览: 220998 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
zzhyq:
有没有后台是ASHX 的呀
Ext.tree.TreePanel -
693593336:
谢谢作者分享,正好用上
Ext.tree.TreePanel -
greatwqs:
提供一个下载的demo不是更好
基于servlet的 Freemarker Demo
演示线程不考虑完全的逻辑问题。例如50=20+20+5+5或50=10+10+20+5等其他情况。。。本例子在判断50找零的时候,只判断了这两种情况,其他的就没考虑的。重在演示线程的过程。。。。
Code:
- packagecc.nothing2012.blogServlet;
- importjava.util.ArrayList;
- importjava.util.List;
- /*=======题目:模仿例8-10,设计5个人排队买票,并规定卖票规则和排队顺序==========*/
- /*
- *模拟五个人排队买票,每人买1张票。售票员有1张20元和1张5元的钱,电影票一张5元。
- *排队从头到尾的顺序是:关五十、林二十、余五、李十、杨五
- *最后的买票顺序是:余五、李十、林二十、关五十、杨五
- */
- publicclassch8_4{
- publicstaticList<String>theResult=newArrayList<String>();//存放最后买票先后的结果
- publicstaticvoidmain(String[]args){
- String[]sName={"关五十","林二十","余五","李十","杨五"};
- Cinemac=newCinema(sName);
- Thread[]theads={newThread(c),newThread(c),newThread(c),
- newThread(c),newThread(c)};
- //for(inti=0;i<5;i++){//初始化5个进程
- //theads[i]=newThread(c);
- //}
- for(inti=0;i<5;i++){
- theads[i].setName(sName[i]);
- }
- for(inti=0;i<5;i++){
- theads[i].start();
- }
- while(true){//将最后结果进行打印
- try{
- Thread.sleep(1000);
- }catch(InterruptedExceptione){
- e.printStackTrace();
- }
- if(theResult!=null){
- if(theResult.size()==5){
- printMessage("最后买票先后的结果");
- for(inti=0;i<5;i++){
- System.out.print(theResult.get(i)+"/t");
- }
- break;
- }
- }
- }
- }
- //负责打印信息。
- publicstaticvoidprintMessage(Objecto){
- System.out.println(o);
- }
- }
- //=======================
- classCinemaimplementsRunnable{
- TicketSellerseller;
- String[]sName;
- publicCinema(String[]sName){
- seller=newTicketSeller();
- this.sName=sName;
- }
- publicvoidrun(){
- if(Thread.currentThread().getName().equals(sName[0])){
- seller.sellTicket(50);
- }elseif(Thread.currentThread().getName().equals(sName[1])){
- seller.sellTicket(20);
- }elseif(Thread.currentThread().getName().equals(sName[2])){
- seller.sellTicket(5);
- }elseif(Thread.currentThread().getName().equals(sName[3])){
- seller.sellTicket(10);
- }elseif(Thread.currentThread().getName().equals(sName[4])){
- seller.sellTicket(5);
- }
- }
- }
- //============售票员卖票的操作==============
- classTicketSeller{
- intfiveNumber=1,tenNumber=0,twentyNumber=1,fiftyNumber=0;//小票员现有5元和20元的钱各一张
- publicsynchronizedvoidsellTicket(intreceiveMoney){
- StringsName=Thread.currentThread().getName();
- if(receiveMoney==5){//票一张是5元,刚好5元就直接卖给他,不用找零了。
- fiveNumber+=1;
- ch8_4.printMessage(sName+"给小票员5元钱,小票员卖个"+sName+"一张票不用找赎");
- ch8_4.theResult.add(sName);
- }elseif(receiveMoney==10){
- while(fiveNumber<1){
- ch8_4.printMessage(sName+"给售票员10元");
- ch8_4.printMessage("小票员请"+sName+"靠边等一会");
- try{
- wait();
- }catch(InterruptedExceptione){
- e.printStackTrace();
- }
- ch8_4.printMessage(sName+"结束等待,继续买票");
- }
- //有零钱了
- fiveNumber=fiveNumber-1;
- tenNumber+=1;
- ch8_4.printMessage(sName+"给售票员10元钱,售票员卖给"+sName+"一张票,找赎5元");
- ch8_4.theResult.add(sName);
- }elseif(receiveMoney==20){
- while(fiveNumber<1||tenNumber<1){
- ch8_4.printMessage(sName+"给售票员20元/n售票员请"+sName+"靠边等一会儿");
- try{
- wait();
- }catch(InterruptedExceptione){
- e.printStackTrace();
- }
- ch8_4.printMessage(sName+"结束等待,继续买票");
- }
- fiveNumber=fiveNumber-1;
- tenNumber=tenNumber-1;
- twentyNumber+=1;
- ch8_4.printMessage(sName+"给售票员20元钱,售票员卖给"+sName+"一张票,找零15元");
- ch8_4.theResult.add(sName);
- }elseif(receiveMoney==50){
- Stringflag="";
- //booleanisOK=true;
- while(true){
- if(fiveNumber>0){//45块的组合有两种情况
- if(twentyNumber==2){
- flag="2twenty";
- break;
- //isOK=false;
- }elseif(twentyNumber==1&&tenNumber==2){
- flag="1twenty";
- //isOK=false;
- break;
- }
- }
- ch8_4.printMessage(sName+"给售票员50元/n售票员请"+sName+"靠边等一会儿");
- try{
- wait();
- }catch(InterruptedExceptione){
- e.printStackTrace();
- }
- ch8_4.printMessage(sName+"结束等待,继续买票");
- }
- if(flag.endsWith("2twenty")){
- fiveNumber-=1;
- twentyNumber=twentyNumber-2;
- fiftyNumber+=1;
- }elseif(flag.equals("1twenty")){
- fiveNumber=fiveNumber-1;
- tenNumber=tenNumber-2;
- twentyNumber=twentyNumber-1;
- }
- ch8_4.printMessage(sName+"给售票员50元钱,售票员卖给"+sName+"一张票,找零45元");
- ch8_4.theResult.add(sName);
- }
- notifyAll();
- }
- }
运行结果如下:
关五十给售票员50元
售票员请关五十靠边等一会儿
林二十给售票员20元
售票员请林二十靠边等一会儿
余五给小票员5元钱,小票员卖个余五一张票不用找赎
关五十结束等待,继续买票
关五十给售票员50元
售票员请关五十靠边等一会儿
林二十结束等待,继续买票
林二十给售票员20元
售票员请林二十靠边等一会儿
李十给售票员10元钱,售票员卖给李十一张票,找赎5元
关五十结束等待,继续买票
关五十给售票员50元
售票员请关五十靠边等一会儿
林二十结束等待,继续买票
林二十给售票员20元钱,售票员卖给林二十一张票,找零15元
关五十结束等待,继续买票
关五十给售票员50元
售票员请关五十靠边等一会儿
杨五给小票员5元钱,小票员卖个杨五一张票不用找赎
关五十结束等待,继续买票
关五十给售票员50元钱,售票员卖给关五十一张票,找零45元
最后最票先后的结果
余五李十林二十杨五关五十
发表评论
-
Singletons and lazy loading
2011-09-26 19:47 926The Java Memory Model # ... -
JVM blogs
2011-09-14 21:40 478话说是 【JVM详解的专题】,很多文章的差不多的,有的详 ... -
effective Java _Generic
2011-09-12 12:03 0#23 -
Class Loader
2011-08-28 16:47 804专栏合集(一):Java深度历险 pdf已上传1 ... -
Study Linkinginginginginginginging
2011-08-27 10:42 750#1 java 工程和类等路径汇总 #2 让Apac ... -
How to send Email
2011-08-26 15:32 6111.java mail 使用介绍 2.Java ... -
Java_Try_Finally
2011-07-18 11:51 654public class TestTryCatch { ... -
Java Class ClassLoader
2011-07-15 17:05 1039下午在看《Java 深度历险》,对Class & ... -
关键字 final & transient
2011-06-08 16:49 973final 详见: http://java.chinaitl ... -
课程设计3
2010-01-04 14:09 785题目3:动态分区式存储管理的存储分配和回收 一、设计目的 ... -
课程设计1
2010-01-04 14:24 756采用的是C++语言编写的,但PCB的数据结构是符合要求的。 ... -
os课程设计后感
2010-01-04 14:48 549今天终于把操作系统的实验给终结了。基本要求算是符合了,可能表 ... -
java作业01
2010-03-06 16:02 670package homework01; public cla ... -
Java作业02
2010-03-11 14:22 798package homework02; import jav ... -
File函数返回当前路径
2010-03-12 19:37 677package netWorkMoreThreadCopy; ... -
多线程文件复制(界面)1
2010-03-12 23:45 948package netWorkMoreThreadCopy; ... -
Java IO 转摘
2010-03-15 00:26 520java中的io中的(input/output)str ... -
java作业03
2010-03-17 00:59 707package homework03; import jav ... -
Java作业
2010-03-17 01:19 648package homework03;import java. ... -
java作業3
2010-03-18 18:36 599package homework03;/** 首先编写一个抽象 ...
相关推荐
白色大气风格的建筑商业网站模板下载.rar
内容概要:本文详细介绍了面向对象编程语言Objective-C的基础语法,包括其历史背景、特点、环境搭建、基本语法、面向对象编程、高级特性和实际应用。具体涵盖的内容包括Objective-C的历史发展、面向对象编程的核心特性、变量和数据类型、控制结构、函数、数组和字典的使用,以及类、对象、属性和方法的定义与使用。此外,还介绍了高级特性如协议和委托、类别和扩展、ARC、块和GCD。最后,通过示例项目展示了如何在Xcode中创建和调试Objective-C程序,以及如何使用Cocoa和Cocoa Touch框架。 适合人群:具备一定的编程基础,希望学习或深入了解Objective-C编程的开发人员。 使用场景及目标:适用于需要开发macOS和iOS应用的开发者,帮助他们掌握Objective-C的基本语法和高级特性,提高编程效率和代码质量。 其他说明:本文不仅提供了详细的理论讲解,还通过实际代码示例展示了如何在Xcode中创建和调试Objective-C项目,适合初级到中级水平的开发人员学习和参考。
本次开发的微信小程球馆预约系统,有管理员,用户两个角色。管理员功能有个人中心,用户管理,场地类型管理,球馆信息管理,球馆预约管理,系统管理。用户可以在微信小程序上面注册登录,查看球馆信息,对球馆进行预约操作。 开发本程序后台用到了SSM开发技术,微信端用的是uni-app技术。数据库采用关系数据库市场占有率最高的MySQL作为本程序使用的数据库,完全符合程序使用并且有丰富的拓展余地。 用户在微信小程序注册登录后可以看到首页,首页可以搜索球馆名称,也可以查看球馆资讯,下面是导航栏。 用户点击球馆信息可以进行预约,预约需要输入相关时间等信息。 我的里面可以修改个人信息,可以退出,还可以查看球馆预约信息和我的收藏信息。
1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用KEIL 标准库开发,当前在STM32F030C8T6运行,如果是STM32F030其他型号芯片,依然适用,请自行更改KEIL芯片型号以及FLASH容量即可。 3、软件下载时,请注意keil选择项是jlink还是stlink。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。 9、编译时请注意提示,请选择合适的编译器版本。
廖鹏盛 - 时代进行曲.zip
白色大气风格的人体艺术摄影网站模板下载.zip
白色大气风格的服装设计师模板下载.zip
白色大气风格的景观设计HTML网站模板.zip
优质的机器学习资源是当今科技领域的热点,其中TensorFlow作为谷歌公司的开源库,成为最受欢迎的深度学习框架之一,广泛应用于各类项目中。TensorFlow提供了丰富的功能和灵活性,使得开发者可以轻松构建和训练复杂的神经网络模型,处理图像、文本和其他类型的数据。由于其开源性质,拥有庞大的社区支持,用户可以放心使用,并从开源社区中获取宝贵的经验和资源。 mnist数据集是机器学习领域的经典数据集之一。它包含着大量的手写数字图像,供开发者用来训练和测试各种算法和模型。这个数据集的规模相对较小,因此对于绝大多数人来说,无论是数据的下载还是训练过程,都不会对电脑性能提出过高的要求。这使得mnist成为了理想的入门数据集,适合初学者探索和理解机器学习算法的基本原理。 结合Pygame与TensorFlow,你将能够为机器学习实验创建出图形化界面,以及实现交互式处理。Pygame是一款面向游戏和多媒体应用的Python库,但同样也可以用于数据可视化和图形化交互。利用Pygame,你可以展示训练过程中的图像输出、模型的预测结果等,增强对机器学习算法运行情况的直观认识。而且,Pygame的简单。内
基于两种坐标系的超螺旋滑模观测器的永磁同步电机pmsm无位置(速度)传感器控制模型 支持 dq旋转坐标系和静止坐标系建立smo 引入二阶滑模超螺旋算法替代一阶滑模 dq坐标系引入锁相环PLL估计转速及转子位置 有效削弱抖振 赠送超螺旋滑模搭建推导文档及相关参考资料 仿真模型
汇编实验算数运算程序设计.docx
小区监控视频监控方案.doc
白色大气风格的HTML商务模板下载.zip
白色大气风格响应式运动健身瑜伽企业网站模板.zip
单片机实验仿真设计报告
白色大气风格的设计公司整站网站模板下载.zip
白色大气风格的html商务模板.zip
白色大气风格的英文网站模板下载.zip
白色大气风格的科研教育模板下载.zip
本摄像头ov7670驱动程序已经通过本人的验证可以正常运行,不同的stm32开发板只需要修改引脚即可使用