java 多线程-快乐订座电影院

public class test{

public static void main(String[]args)

{

//可用位置

List available =new ArrayList();

available.add(1);

available.add(2);

available.add(3);

available.add(4);

available.add(5);

available.add(6);

available.add(7);

//顾客位置

List seats1=new ArrayList();

seats1.add(1);

seats1.add(2);

List seats2=new ArrayList();

seats2.add(4);

seats2.add(5);

seats2.add(6);

Cinema c=new Cinema(available,"happy");

new Thread(new customer(c,seats1),"me").start();

new Thread(new customer(c,seats2),"she").start();

}

}

class Cinema{

List available; //可用位置

String name;

public Cinema(List available,String name)

{

this.available=available;

this.name=name;

}

public boolean bookticks(List seats)

{

System.out.println("可用位置:"+available);

List copy=new ArrayList();

copy.addAll(available);

//去掉两个容器相同的元素

copy.removeAll(seats);

//判断是否选位置成功

if(available.size()-copy.size()!=seats.size())

{

return false;

}

else

{

available=copy;

}

return true;

}

}

class customer implements Runnable{

Cinema cinema; //哪个影院

Listseats; //多少个位置

public customer(Cinema cinema,List seats)

{

this.cinema=cinema;

this.seats=seats;

}

public void run()

{

synchronized(cinema) { //锁影院

boolean flag=cinema.bookticks(seats);

if(flag)

{

System.out.println("出票成功"+Thread.currentThread().getName()+"位置:"+seats);

}else

{

System.out.println("出票失败"+Thread.currentThread().getName()+"位置不够");

}

}

}

}

©著作权归作者所有:来自51CTO博客作者wx5d21d5e6e5ab1的原创作品,如需转载,请注明出处,否则将追究法律责任

Java多线程电影院_java 多线程-快乐订座电影院相关推荐

  1. java线程钥匙_Java多线程并发编程/锁的理解

    一.前言 最近项目遇到多线程并发的情景(并发抢单&恢复库存并行),代码在正常情况下运行没有什么问题,在高并发压测下会出现:库存超发/总库存与sku库存对不上等各种问题. 在运用了 限流/加锁等 ...

  2. java线程 教程_Java多线程系列教程

    Java多线程系列教程 多线程是Java中不可避免的一个重要主体.从本章开始,我们将展开对多线程的学习.接下来的内容是对Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(), n ...

  3. java 多线程 总结_Java 多线程总结

    昨天熬了个通宵,看了一晚上的视频,把java 的多线程相关技术重新复习了一遍,下面对学习过程中遇到的知识点进行下总结. 首先我们先来了解一下进程.线程.并发执行的概念: 进程是指:一个内存中运行的应用 ...

  4. java线程入门_java多线程快速入门(一)

    1.什么是进程 比如:QQ.QQ游戏.eclipse都是进程,可以通过任务管理器查看进程 2.进程和线程区别 线程是进程的一部分,一个进程可以包含多个线程,一个线程只能属于一个进程 进程是所有线程的集 ...

  5. java 高效的多线程同步_java多线程的同步和异步

    java多线程的同步和异步 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计算 ...

  6. java的多线程机制_Java多线程开发(一)| 基本的线程机制

    0. 前言 Java 为了实现跨平台,在语言层面上实现了多线程.我们只需要熟悉 Java 这一套多线程机制就行了,比 C/C++ 要容易多了. 1. 定义任务 我们编写程序,最终是为了完成特定的任务. ...

  7. java线程设计模式_JAVA多线程设计模式

    漫谈UML UML 类图 类和层次结构的关系 接口与实现 聚合 访问控制 类间的关联性 顺序图 处理流程和对象间的协调 时序图 Introduction 1 Java语言的线程 Java语言的线程 何 ...

  8. java 多线程 进程_Java多线程1:进程与线程概述

    进程和线程 谈到多线程,就得先讲进程和线程的概念. 进程 进程可以理解为受操作系统管理的基本运行单元.360浏览器是一个进程.WPS也是一个进程,正在操作系统中运行的".exe"都 ...

  9. java闭合数据_java多线程中线程封闭详解

    线程封闭的概念 访问共享变量时,通常要使用同步,所以避免使用同步的方法就是减少共享数据的使用,这种技术就是线程封闭. 实现线程封闭的方法 1:ad-hoc线程封闭 这是完全靠实现者控制的线程封闭,他的 ...

  10. java线程 打印_java多线程实现 5秒一次打印当前时间

    import javax.swing.JLabel; import java.util.Date; public class Time extends JFrame implements Runnab ...

最新文章

  1. layui文本框填充值_layui框架常用输入框介绍
  2. 怎么样给ajax的ulr加密,研究Ajax请求受登录保护的URL的优雅解决
  3. linux 网络7层模型,Linux网络编程——OSI七层模型、TCP/IP模型
  4. golang go 语言在 window下执行命令 获取本地ip
  5. CentOS远程监控
  6. spring-boot-starter-parent 包maven依赖报错
  7. 网络综合实验结课总结
  8. 搭建机器人电控系统——什么是单片机MCU?如何选择单片机?
  9. 6 二十五项反措--防止锅炉事故
  10. 复制文件夹 omitting directory
  11. HDUOJ 5651 xiaoxin juju needs help
  12. 喜欢计算机专业的理由英语,计算机专业的英文自我介绍
  13. 判断满足条件的三位数
  14. SYN6288中文语音合成 程序
  15. TPAMI 2022 | 金字塔池化的骨干网络,各大任务都涨点!南开达摩院联合推出P2T
  16. 禁止暴风影音的自动升级的方法
  17. 可以高度定制的代理服务器anyproxy
  18. docker可视化管理工具
  19. iOS Xcode必备插件
  20. “操作系统的「冷板凳」要坐多久?”万字长文解读11年开源人的坚持

热门文章

  1. pe系统如何读取手机_pe系统没有连接手机的驱动怎么办
  2. avast android高级版,排名第一 Android杀毒软件avast!评测
  3. Android CompoundButton
  4. 数据结构试卷及答案(一)
  5. 常见的重要电脑英语及缩写
  6. 腾讯悄悄地发布了Linux版QQ-附安装-卸载方法
  7. Kali Linux上安装QQ等Windows应用
  8. java试题库管理系统源代码_题库聚合源码_有没有人有试题库管理系统的源代码啊基于java web的_淘题吧...
  9. log4cplus指南
  10. 背包问题九讲笔记-01背包问题