import java.util.ArrayList;
import java.util.List; public class 多线程 {
// public static int j=0;
public static long a=0;
public static void main(String[] args) throws InterruptedException {
List<Thread> list = new ArrayList<Thread>();
System.out.println(System.currentTimeMillis());
a=System.currentTimeMillis();//开始运行计时器 aa a1 = new aa();
Thread aa1= new Thread(a1,"1号");;//都共用一个,分成不同的线程
Thread aa2= new Thread(a1,"2号");;
Thread aa3= new Thread(a1,"3号");;
Thread aa4= new Thread(a1,"4号");;
Thread aa5= new Thread(a1,"5号");;
list.add(aa1);//把每一个线程都放入里面
list.add(aa2);
list.add(aa3);
list.add(aa4);
list.add(aa5);
aa1.setPriority(10);//设置线程的优先级
aa2.setPriority(10);
aa3.setPriority(10);
aa4.setPriority(10);
aa5.setPriority(10);
aa1.start();//开始每一个线程
aa2.start();
aa3.start();
aa4.start();
aa5.start(); // for (int i = 0; i < 4; i++) {
// list.get(i).join();
// }
// System.out.println(System.currentTimeMillis());
Thread currtime = new Thread(new cc());
currtime.setPriority(1);
currtime.start();//结束运行计时器
System.out.println("546545645645646546468468461654654654654");
// System.out.println(j);
} }
class aa implements Runnable{
//这是车票,调用的时候分为不同的车站口出票
// 多线程 a = new 多线程();
private int b =1000;
@Override
public void run() {
// TODO Auto-generated method stub
while(b>0) {
Thread th = Thread.currentThread();
String s = th.getName();
System.out.println(s+"正在出售第"+b--+"张票");
}
} } class cc implements Runnable{
//计时
@Override
public void run() {
多线程 a = new 多线程();
// TODO Auto-generated method stub
System.out.println(System.currentTimeMillis()-a.a);
} }
class bb implements Runnable{ @Override
public void run() {
// TODO Auto-generated method stub
for (int i = 1; i < 1000000; i++) {
int j=1+1+1+1;
}
} }

java实现多线程(车站卖票)的更多相关文章

  1. java学习多线程之卖票示例

    这一节我们来说一个示例就是卖票示例: 需求: 我们现在有100张票,然后分四个窗口来卖,直到卖完为止. 思路: 1.先定一个一个票类,描述票的属性,还有打印卖出的票,并且实现Runnable中的run ...

  2. Java之多线程窗口卖票问题(Runnable)

    /** * 例子:创建三个窗口卖票,总票数为100张.使用实现Runnable接口的方式 * 存在线程的安全问题,待解决. */class Window1 implements Runnable{ p ...

  3. Java之多线程窗口卖票问题(Thread)

    /** * * 例子:创建三个窗口卖票,总票数为100张.使用继承Thread类的方式 * * 存在线程的安全问题,待解决. * */class Window extends Thread{ priv ...

  4. java多线程实现卖票小程序

    package shb.java.demo; /** * 多线程测试卖票小程序. * @Package:shb.java.demo * @Description: * @author shaobn * ...

  5. java 多线程之卖票两种方式

    1.通过extends Thread /* 需求:简单的卖票,多个窗口同时买票 (共用资源) 创建线程的第二种方式:实现Runnable接口 步骤: 1,定义类实现Runnable接口 2,覆盖/重写 ...

  6. java笔记线程电影院卖票最终版

    * 如何解决线程安全问题呢? *  * 要想解决问题,就要知道哪些原因会导致出问题:(而且这些原因也是以后我们判断一个程序是否会有线程安全问题的标准) * A:是否是多线程环境 * B:是否有共享数据 ...

  7. java笔记线程电影院卖票改进版

    通过加入延迟后,就产生了连个问题: * A:相同的票卖了多次 *   CPU的一次操作必须是原子性的 * B:出现了负数票 *   随机性和延迟导致的 public class SellTicketD ...

  8. JAVA培训—线程同步--卖票问题

    线程同步方法: (1).同步代码块,格式: synchronized (同步对象){ //同步代码 } (2).同步方法,格式: 在方法前加synchronized修饰 问题: 多个人同时买票. 1. ...

  9. Java中多线程的使用(超级超级详细)线程安全原理解析 4

    Java中多线程的使用(超级超级详细)线程安全 4 什么是线程安全? 有多个线程在同时运行,这些线程可能会运行相同的代码,程序运行的每次结果和单线程运行的结果是一样的,而且其他变量的值也和预期的值一样 ...

随机推荐

  1. 曾开源OpenStack,如今Rackspace再次启动IPO

    导读:Rackspace开源的OpenStack已成为全球仅次于Linux的第二大开源社区,但Rackspace至今仍在苦苦探索路在何方. 近期有国外媒体爆料,美国云计算厂商Rackspace又悄悄准 ...

  2. Java SPI机制简述

    概述 SPI全称Service Provider Interface,是一种为框架提供良好扩展性的机制.一般由框架开发方定义接口规范(如java.sql.Driver),而第三方厂商为之提供自己的实现 ...

  3. tp5分页数据

    paginate分页完成之后,生成的分页数据是对象形式存在的,所以如果要调用其分页的数据,比如想要遍历修改数据中的值,等需要进行 foreach操作的地方,需要使用 $re=Db::->tabl ...

  4. 工作总结1-----String.format的使用

    以前在开发项目中,输入信息常使用的方法:"XXXXXXX"+a+"XXXXXXXXXXX"+b;,这种方式不仅不美观而且不易维护! String中的format ...

  5. spring中<context:property-placeholder/>一个坑

    <context:property-placeholder location="classpath:db.properties" ></context:prope ...

  6. 修改jupyter默认保存文件的目录

    1.打开 Anaconda Prompt输入命令 jupyter notebook --generate-config 2.可以看到生成了目录及jupyter notebook的配置文件,打开该文件. ...

  7. 查找算法----二分查找与hash查找

    二分查找 有序列表对于我们的实现搜索是很有用的.在顺序查找中,当我们与第一个元素进行比较时,如果第一个元素不是我们要查找的,则最多还有 n-1 个元素需要进行比较. 二分查找则是从中间元素开始,而不是 ...

  8. RBAC权限分配

    RABC:基于角色的权限访问控制(Role-Based Access Control) 一般在登录系统认证通过后,会先确定的该用户的操作权限,判断用户的后续操作是否合法! RABC至少需要三张表:用户 ...

  9. 【linux】linux下java环境安装

    1:下载jdk的包,通过ftp传到服务器 2:解压 tar zxvf jdk-8u181-linux-x64.tar.gz 3:环境配置 编辑配置文件: vim /etc/profile 在文件下插入 ...

  10. scipy.sparse的一些整理

    一.scipy.sparse中七种稀疏矩阵类型 1.bsr_matrix:分块压缩稀疏行格式 介绍 BSR矩阵中的inptr列表的第i个元素与i+1个元素是储存第i行的数据的列索引以及数据的区间索引, ...