zoukankan      html  css  js  c++  java
  • 第九周课程总结&实验报告(七)

    完成火车站售票程序的模拟。

    要求:

    (1)总票数1000张;

    (2)10个窗口同时开始卖票;

    (3)卖票过程延时1秒钟;

    (4)不能出现一票多卖或卖出负数号票的情况。

    package Lemon;
    
    class Tickets implements Runnable {
    	private int ticket = 1000;
    	public void run(){
    		try{
    			Thread.currentThread();
    			Thread.sleep(1000);
    		}catch(InterruptedException e){
    		   e.printStackTrace();
    		}
    		synchronized (this){
    			while(true){
    				if(ticket>0){
    					System.out.println(Thread.currentThread().getName()+"卖出"+ticket+"张票");
    					ticket --;
    				}else{
    					System.out.println(Thread.currentThread().getName()+"票已卖完");
    					break;
    				}
    				
    			}
    		}		
    	}
    }
    
    package Lemon;
    
    public class Test {
    
    	public static void main(String[] args) {
    		Tickets ti = new Tickets();
    		for(int i = 1;i<=10;i++){
    			if(i<=9){
    				new Thread(ti,"窗口00"+i).start();
    			}else{
    				new Thread(ti,"窗口010").start();
    			}
    			
    		}
    
    	}
    }
    


    课程总结

    1.线程状态

    2.线程操作方法

    getName()取得线程名称

    setName()设置线程名称(若没有设置线程名称,系统会自动设置名称,因系统中必然存在一个static属性,自动用于为线程自动命名)

    isAlive()测试线程是否已经启动而且仍在运行

    join()强制线程运行

    Thread.sleep()使线程进行暂时的休眠

    interrupt()中断线程运行

    可以使用setPriority()设置线程的优先级

    yield()将一个线程的操作暂时让给其他线程运行

    3.File

    学习了File类中的主要方法

    使用createNewFile()创建一个新文件

    delete()进行删除文件操作

    mkdir()创建一个文件夹

    列出指定目录中的全部文件public String[] list():列出全部名称,返回一个字符串数组,public File[] listFiles():列出完整的路径,返回一个File对象数组

    listFiles()列出一个文件完整的路径

    isDirectory判定给定的一个路径是否是目录

    任重道远


  • 相关阅读:
    2018第45周日
    RabbitMQ消息的消费与持久化
    Rabbitmq的调度策略
    Rabbitmq交换器Exchange和消息队列
    RabbitMQ概念
    微服务拆分
    微服务演化
    2018第44周日
    福勒(Martin Fowler)
    微服务架构定义那点事
  • 原文地址:https://www.cnblogs.com/buxiu888/p/11728886.html
Copyright © 2011-2022 走看看