• 第九周课程总结&实验报告


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

    实验任务详情:

    完成火车站售票程序的模拟。
    要求:
    (1)总票数1000张;
    (2)10个窗口同时开始卖票;
    (3)卖票过程延时1秒钟;
    (4)不能出现一票多卖或卖出负数号票的情况。

    实验源码

    package 实验七;
    
    class MyThread implements Runnable{
        
            private int ticket = 1000;
            
            public void run() {
                for(int i = 0; i <=999; i++) {
                       this.sale();
                       if(i == Math.sqrt(i) * Math.sqrt(i)) {
                           Thread.currentThread().yield();
                       }
                    }
                }
            
             public synchronized void sale() {
                    if(ticket > 0) {
                        try {
                            Thread.currentThread().sleep(1000);
                        }catch(InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println(Thread.currentThread().getName()+"售票:ticket = " + ticket --);
                    }
             }
    }
    
    package 实验七;
    
    public class first {
        public static void main (String args[]) {
            MyThread my = new MyThread();
            for(int i = 1; i <= 10; i++) {
                new Thread(my,"窗口"+ I ).start();
            }   
        }
    }
    

    实验结果

    第九周总结

    10月21日

    要想实现多线程,必须在主线程中创建新的线程对象。线程一般具有五种状态,即创建,就绪,运行,阻塞,终止。
    1创建状态
    新建一个线程对象可采用Thread类的构造方法实现。
    2就绪状态
    新建线程对象后,调用该线程的start()方法就可以启动线程。当线程启动时,线程进入就绪状态。此时,线程将进入线程队列排队,
    等待CPU服务,这就表明它已经具备了运行条件。
    3运行状态
    当就绪状态的线程被调用并获得处理器资源时,线程就进入了运行状态。run()方法定义了该线程的操作和功能。
    4堵塞状态

    5死亡状态。
    线程调用stop()方法时或run()方法执行结束后,即处于死亡状态。处于死亡状态的线程不具备有继续运行的能力。

    10月23日

    想要操作D盘下的test文件,则路径必须修改为“d: est.txt”

    d:"+File.separator+"test"+File.separator+demo.txt"

    public String[] list ():列出全部名称,返回一个字符串数组。
    public File[] listFiles():列出完整路径,返回一个File对象数组。

  • 相关阅读:
    掌握MySQL 2
    掌握MySQL 1
    掌握并发编程3
    网络编程—SOCKET开发
    掌握并发编程2
    掌握并发编程1
    网络编程知识点
    osi五层协议
    C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编
    C#中Convert和parse的区别
  • 原文地址:https://www.cnblogs.com/9557yxl/p/11741199.html
Copyright © 2020-2023  润新知