zoukankan      html  css  js  c++  java
  • 第九周课程总结及实验报告7


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

    package Zuoye7;
    class MyThread implements Runnable{
     private int ticket=1000;
        public void run() { 
        	for(int i=0;i<1001;i++) {
        		this.sales();
        	}
        }
         public  synchronized void sales() {                          
                    if(ticket>0) {                                  
                        try {
                            Thread.sleep(1000);
                        }
                        catch(InterruptedException e) {
                            e.printStackTrace();
                        }
                        System.out.println(Thread.currentThread().getName()+"售票:"+ticket--);    
                    }
                }
            };
    public class Ticket {
        public static void main(String[] args) {
            MyThread mt1=new MyThread();
            new Thread(mt1,"窗口1").start();
            new Thread(mt1,"窗口2").start();
            new Thread(mt1,"窗口3").start();
            new Thread(mt1,"窗口4").start();
            new Thread(mt1,"窗口5").start();
            new Thread(mt1,"窗口6").start();
            new Thread(mt1,"窗口7").start();
            new Thread(mt1,"窗口8").start();
            new Thread(mt1,"窗口9").start();
            new Thread(mt1,"窗口10").start();
        }
    }
    

    学习总结
    线程的状态
    (1)取得和设置线程名称
    通过getName和setName;
    如果没有设置名字,系统会为其自动分配名称,格式Thread-Xx。
    名称可能相同,id不可能相同。
    Java中所有线程都是同时启动的,所有main线程结束不会对其他线程有影响。
    (2)判断线程是否自动启动
    使用isAlive()来测试线程是否启动且仍在运行。
    是,返回true;否,返回false;
    (3)线程的强制运行
    采用join()方法,在线程强制运行期间,其他线程无法运行,必须等待此线程完成后才可以继续执行。
    (4)线程的休眠、中断
    使用Thread.sleep()方法,时间单位ms.
    (5)线程的优先级
    用setPriority设置。
    MAX_PRIORITY 最高优先级
    NORM_PRIORITY 中等优先级 (主方法的优先级)
    MIN_PRIORITY 最低优先级
    (6)线程的礼让
    运用yield方法将一个线程的操作暂时让给其他线程执行。
    (7)同步代码块

    synchronized(同步对象){
    需要同步的代码;
    }
    

    (8)操作文件的类File
    Windows目录的分隔符""
    Linux目录的分割符“/"
    输入要“";
    (9)列出指定目录的全部文件

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

    判断一个给定路径是否为目录
    运用isDirectory()方法判断。

  • 相关阅读:
    一周信创舆情观察(11.2~11.8)
    一周信创舆情观察(10.26~11.1)
    一周信创舆情观察(10.19~10.25)
    一周信创舆情观察(10.12~10.18)
    Python脚本导出AWS EC2资源清单
    C++typename的由来和用法
    百篇已过,又是一个新篇章,谈谈感受吧
    【硬件篇之电源纹波噪声测试】
    C++的转换手段并与explicit关键词配合使用
    shell脚本的使用该熟练起来了,你说呢?(篇二)
  • 原文地址:https://www.cnblogs.com/1211li/p/11729397.html
Copyright © 2011-2022 走看看