第九周课程总结&实验报告(七)

实验内容:
源代码:

主类:



package exercise;
public class TrainStationTicketSales implements Runnable {
    private int ticket = 1000;
    public void run() {
        for(int i = 0 ; i<1000;i++) {
            this.sale();
            ticket--;
        }
    }
public synchronized void sale() {
        if(ticket>=0){
            try {
                Thread.sleep(100);

            }catch(InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+"卖出一张票"+" "+"余票:" +ticket);
        }
        if(ticket==0) {
            System.out.println("票已销完");

        }
    }
}

测试类:



package exercise;

public class TrainStationTest {
    public static void main(String args[]) {
        TrainStationTicketSales ts = new TrainStationTicketSales();
//      TrainStationTicketSales ts1 = new TrainStationTicketSales();
        Thread t2 = new Thread(ts,"二号窗口");
        Thread t1 = new Thread(ts,"一号窗口");
        Thread t3 = new Thread(ts,"三号窗口");
        Thread t4 = new Thread(ts,"四号窗口");
        Thread t5 = new Thread(ts,"五号窗口");
        Thread t6 = new Thread(ts,"六号窗口");
        Thread t7 = new Thread(ts,"七号窗口");
        Thread t8 = new Thread(ts,"八号窗口");
        Thread t9 = new Thread(ts,"九号窗口");
        Thread t10 = new Thread(ts,"十号窗口");
        t10.setPriority(Thread.MAX_PRIORITY);
        t1.setPriority(Thread.MAX_PRIORITY);
        t9.setPriority(Thread.MAX_PRIORITY);
        t6.setPriority(Thread.MAX_PRIORITY);
        t2.setPriority(Thread.MIN_PRIORITY);
        t4.setPriority(Thread.MIN_PRIORITY);
        t5.setPriority(Thread.MIN_PRIORITY);
        t7.setPriority(Thread.MIN_PRIORITY);
        t3.setPriority(Thread.NORM_PRIORITY);
        t8.setPriority(Thread.NORM_PRIORITY);
        t1.start();
        t2.start();
        t3.start();
        t4.start();
        t5.start();
        t6.start();
        t7.start();
        t8.start();
        t9.start();
        t10.start();
    }
}

运行截图:





思路

原文地址:https://www.cnblogs.com/xudo/p/11723427.html

时间: 2024-10-21 06:29:01

第九周课程总结&实验报告(七)的相关文章

第五周课程总结&amp;实验报告

第五周课程总结&实验报告 实验三 String类的应用 实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 实验内容 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) 统计该字符串中字母s出现的次数. 统计该字符串中子串"is"出现的次数. 统计该字符串中单词"is"出现的次数. 实现该字符串的倒序输出. 2.请编写一个程序,使用下述算法加密或解密用户输入的英文

第三周课程总结&amp;实验报告(一)

撰写第三周课程总结及实验报告(一) 1.打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数" 2. 编写Java程序,求13-23+33-43+-+973-983+993-1003的值. 3. 编程求1!+2!+3!+-+20! 4. 编写Java程序,计算8+88+888+-前10项之和. 5. 一个数如果恰好等于它的因子之和,这个数就称为完数.编写程序输出1000以内的所有

Java第三周课程总结&amp;实验报告一

第三周课程总结 1.关于面向对象的一些具体内容,明白了类与对象以及Java的封装性和构造方法以及对对象匿名的相关知识. 2.this关键字,它是表示类的成员属性(变量),使用this构造方法时必须放在首行,不能够循环调用,this只表示当前对象. 3.static关键字,使用static声明属性能够使对象属性共享,用static声明方法能够让类名称直接被调用,即静态方法. 4.main方法,必须定义为public static void main(String args[]),以及学习了main

第八周课程总结 &amp; 实验报告(六)

第八周课程总结 一.包装类 介绍 装箱与拆箱 应用 二.异常 基本概念 基本格式 异常类的继承结构 throws关键字 throw关键字 Exception类和RuntimeException类 自定义异常类 三.多线程 基本概念 进程 多线程 Java中线程的实现 继承Thread类 实现Runnable接口 Thread和Runnable的区别 一.包装类        1.介绍                                8种基本类型变包装类 (1)除了Character

第五周课程总结&amp;实验报告(三)

实验三 String类的应用 实验目的: (1)掌握类String类的使用: (2)学会使用JDK帮助文档: 实验内容: 1.已知字符串:"this is a test of java".按要求执行以下操作: (1)统计该字符串中字母s出现的次数. (2)统计该字符串中子串"is"出现的次数. (3)统计该字符串中单词"is"出现的次数. (4)实现该字符串的倒序输出. 实验代码: package project2; public class t

第六周课程总结&amp;实验报告(四)

实验报告(四) 一.实验目的 1.掌握类的继承 2.变量的继承和覆盖,方法的继承,重载和覆盖的实现 二.实验的内容 1.根据下面的要求实现圆类Circle. 圆类Circle的成员变量:radius表示圆的半径. 圆类Circle的方法成员: Circle():构造方法,将半径置0 Circle(double r):构造方法,创建Circle对象时将半径初始化为r double getRadius():获得圆的半径值 double getPerimeter():获得圆的周长 void disp(

第七周课程总结&amp;实验报告(五)

实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结构. 掌握创建自定义包的方法. 实验内容 (一)抽象类的使用 设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形.矩形.圆存对象,将各类图形的面积输出.注:三角形面积s=sqrt(p*(p-a)*(p-b)*(p-c)) 其

第七周课程总结&amp;实验报告五

实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 Java 系统包的结构. 掌握创建自定义包的方法. 实验内容 (一)抽象类的使用 设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形.矩形.圆存对象,将各类图形的面积输出. 注:三角形面积s=sqrt(p(p-a)(p-b)*(p-c)) 其中

第七周课程总结&amp;实验报告

实验四 类的继承 (一)抽象类的使用 1,设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形.矩形.圆存对象,将各类图形的面积输出. 注:三角形面积s=sqrt(p(p-a)(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2 2.编程技巧 (1)抽象类定义的方法在具体类要实现: (2)使用抽象类的引用变量可引用子类的对象: (3)通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方