同步与互斥pv购票系统c语言,用互斥与同步的知识写售票系统

class MyThread2 implements Runnable{

private int ticketsCont = 100;//一共5张火车票

private final Object lockObj = new Object();

@Override

public void run() {

while (true){

synchronized (lockObj){

while (ticketsCont<=0){

System.out.println(Thread.currentThread().getName()+"没票了");

try {

lockObj.wait();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

ticketsCont--;    //如果还有票,就卖掉一张

System.out.println(Thread.currentThread().getName()+"卖了一张票,剩余票数为"+ticketsCont);

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

lockObj.notifyAll();

}

}

}

}

public class TicketsRunnable {

public static void main(String[] args) {

MyThread2 mt =new MyThread2();

//创建三个线程,模拟三个窗口卖票

Thread th1 = new Thread(mt,"窗口1");

Thread th2 = new Thread(mt,"窗口2");

Thread th3 = new Thread(mt,"窗口3");

//启动这三个线程

th1.start();

th2.start();

th3.start();

}

}

运行结果 我的可以实现 你可以参考一下  有问题可以探讨哈窗口1卖了一张票,剩余票数为99

窗口1卖了一张票,剩余票数为98

窗口1卖了一张票,剩余票数为97

窗口1卖了一张票,剩余票数为96

窗口1卖了一张票,剩余票数为95

窗口1卖了一张票,剩余票数为94

窗口1卖了一张票,剩余票数为93

窗口1卖了一张票,剩余票数为92

窗口1卖了一张票,剩余票数为91

窗口1卖了一张票,剩余票数为90

窗口1卖了一张票,剩余票数为89

窗口1卖了一张票,剩余票数为88

窗口1卖了一张票,剩余票数为87

窗口1卖了一张票,剩余票数为86

窗口1卖了一张票,剩余票数为85

窗口1卖了一张票,剩余票数为84

窗口3卖了一张票,剩余票数为83

窗口3卖了一张票,剩余票数为82

窗口3卖了一张票,剩余票数为81

窗口2卖了一张票,剩余票数为80

窗口2卖了一张票,剩余票数为79

窗口2卖了一张票,剩余票数为78

窗口2卖了一张票,剩余票数为77

窗口3卖了一张票,剩余票数为76

窗口3卖了一张票,剩余票数为75

窗口3卖了一张票,剩余票数为74

窗口3卖了一张票,剩余票数为73

窗口3卖了一张票,剩余票数为72

窗口3卖了一张票,剩余票数为71

窗口3卖了一张票,剩余票数为70

窗口3卖了一张票,剩余票数为69

窗口3卖了一张票,剩余票数为68

窗口3卖了一张票,剩余票数为67

窗口3卖了一张票,剩余票数为66

窗口3卖了一张票,剩余票数为65

窗口3卖了一张票,剩余票数为64

窗口3卖了一张票,剩余票数为63

窗口3卖了一张票,剩余票数为62

窗口3卖了一张票,剩余票数为61

窗口1卖了一张票,剩余票数为60

窗口1卖了一张票,剩余票数为59

窗口1卖了一张票,剩余票数为58

窗口1卖了一张票,剩余票数为57

窗口1卖了一张票,剩余票数为56

窗口1卖了一张票,剩余票数为55

窗口1卖了一张票,剩余票数为54

窗口1卖了一张票,剩余票数为53

窗口1卖了一张票,剩余票数为52

窗口1卖了一张票,剩余票数为51

窗口1卖了一张票,剩余票数为50

窗口1卖了一张票,剩余票数为49

窗口1卖了一张票,剩余票数为48

窗口1卖了一张票,剩余票数为47

窗口1卖了一张票,剩余票数为46

窗口1卖了一张票,剩余票数为45

窗口1卖了一张票,剩余票数为44

窗口1卖了一张票,剩余票数为43

窗口1卖了一张票,剩余票数为42

窗口3卖了一张票,剩余票数为41

窗口2卖了一张票,剩余票数为40

窗口2卖了一张票,剩余票数为39

窗口2卖了一张票,剩余票数为38

窗口2卖了一张票,剩余票数为37

窗口2卖了一张票,剩余票数为36

窗口2卖了一张票,剩余票数为35

窗口2卖了一张票,剩余票数为34

窗口2卖了一张票,剩余票数为33

窗口2卖了一张票,剩余票数为32

窗口2卖了一张票,剩余票数为31

窗口2卖了一张票,剩余票数为30

窗口3卖了一张票,剩余票数为29

窗口3卖了一张票,剩余票数为28

窗口3卖了一张票,剩余票数为27

窗口3卖了一张票,剩余票数为26

窗口3卖了一张票,剩余票数为25

窗口1卖了一张票,剩余票数为24

窗口1卖了一张票,剩余票数为23

窗口1卖了一张票,剩余票数为22

窗口1卖了一张票,剩余票数为21

窗口1卖了一张票,剩余票数为20

窗口1卖了一张票,剩余票数为19

窗口1卖了一张票,剩余票数为18

窗口1卖了一张票,剩余票数为17

窗口3卖了一张票,剩余票数为16

窗口3卖了一张票,剩余票数为15

窗口3卖了一张票,剩余票数为14

窗口3卖了一张票,剩余票数为13

窗口3卖了一张票,剩余票数为12

窗口3卖了一张票,剩余票数为11

窗口2卖了一张票,剩余票数为10

窗口3卖了一张票,剩余票数为9

窗口3卖了一张票,剩余票数为8

窗口3卖了一张票,剩余票数为7

窗口3卖了一张票,剩余票数为6

窗口3卖了一张票,剩余票数为5

窗口3卖了一张票,剩余票数为4

窗口3卖了一张票,剩余票数为3

窗口3卖了一张票,剩余票数为2

窗口3卖了一张票,剩余票数为1

窗口3卖了一张票,剩余票数为0

窗口3没票了

窗口1没票了

窗口2没票了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值