A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 Java好久不见 于 2016-6-23 23:05 编辑

/**
*
* 一共有四个售票口同时卖100张票,请模拟售票过程输出时要显示是哪个窗口卖第几张票。
*
*/
public class gt {
        public static void main(String[] args) {
                /**出票起始值*/
                int sticke=1;
                /**用while循环控制出票*/
                while(sticke<=100){
                        int x=3;
                        /**for输出1-4窗口*/
                                for(x=1;x<5;x++){
                                        System.out.println("窗口"+x+"票"+sticke);
                                        sticke ++;
                                }
                        
                }
        }
}

12 个回复

倒序浏览
你这个就一个主线程模拟,其实不符合要求的。
要建立4个线程,然后对公共资源加锁

点评

赞!  发表于 2016-6-22 07:13
回复 使用道具 举报
听2楼的额
回复 使用道具 举报
Ake丶 发表于 2016-6-21 22:48
你这个就一个主线程模拟,其实不符合要求的。
要建立4个线程,然后对公共资源加锁 ...

好的,谢谢了
回复 使用道具 举报
看不懂!亲
回复 使用道具 举报

设计一个多线程程序如下:设计一个火车售票模拟程序。假如火车站要有100张火车票要卖出,现在有5个售票点同时售票,用5个线程模拟这5个售票点的售票情况
1、要求打印出每个售票点所卖出的票号
2、各售票点不能售出相同票号的火车票


package com.hebust.java.third;

import java.util.Random;

public class SaleTicket implements Runnable {

public int total;
public int count;

public SaleTicket() {
total = 100;
count = 0;
}

public void run() {
while (total > 0) {
synchronized (this) {
if(total > 0) {
try {
//Thread.sleep(800);
Thread.sleep(new Random().nextInt(1000));
} catch (InterruptedException e) {
e.printStackTrace();
}
count++;
total--;

System.out.println(Thread.currentThread().getName() + "\t当前票号:" + count);
}
}
}

}

public static void main(String[] args) {
SaleTicket st = new SaleTicket();
for(int i=1; i<=5; i++) {
new Thread(st, "售票点" + i).start();
}
}
}
回复 使用道具 举报

这是我百度的,是用线程做的,没学过线程,不咋看的懂
回复 使用道具 举报
好像要用到线程的知识吧
回复 使用道具 举报
老师今天刚讲的猜拳游戏,无聊了可以玩玩,和电脑比比智商
/**
*
* 猜拳游戏
*/
import java.util.*;
class Demo {
        public static void main(String[] args) {
             Scanner in = new Scanner (System.in);
                 int r = 0;
                 int d = 0;
                 while(true){
                 int a = getSJS1();
                 
                 // --------------------------
                 System.out.println("请你出拳");
                 String t =in.next();
                 //    t       a   
                 if((t.equals("剪刀")&&a==3)|| (t.equals("石头")&& a ==2) || (t.equals("布")&& a ==1)){
                                System.out.print("你赢了");
                                r++;
                 }else if ((t.equals("剪刀")&&a==2)|| (t.equals("石头")&& a ==1) || (t.equals("布")&& a ==3)){
                                System.out.print("平局");
                                r++;
                 }else{
                                System.out.print("电脑赢了");
                                d++;
                 }
                 if(r == 2 || d == 2  ){
                        break;
                 }
                 }
                 if(r>d){
                        System.out.print(" 最终的 赢家是 人" );

                 }else{
                        System.out.print(" 最终的 赢家是电脑" );

                 }
        }
                public static int getSJS1(){
                Random r =new Random();
                return r.nextInt(3)+1;
        }
}
回复 使用道具 举报
2楼 赞一个~
回复 使用道具 举报
他的好 发表于 2016-6-23 23:13
老师今天刚讲的猜拳游戏,无聊了可以玩玩,和电脑比比智商
/**
*

这个可以有
回复 使用道具 举报
楼主先把线程的内容学一下再来做效果会好一点,对于做售票窗口这个问题,你学的时候注意下,实现线程的2中方式,资源共享问题,同步锁问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马