zoukankan      html  css  js  c++  java
  • 第七次实验报告及总结

    实验任务详情:

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

    实验代码

    package Demo6;
    
    class MyThread implements Runnable{
    	private int ticket=1000;
    	public void run() {
    		for(int i=0;i<10000;i++) {
    			this.sale();
    		}
    	}    
    public synchronized void sale() {
    			if(ticket>0) {
    			  try {
    				  Thread.sleep(1000);
    			  }catch(Exception e) {
    				  e.printStackTrace();
    			  }
    			  System.out.println(Thread.currentThread().getName()+"运行,i="+ticket--);
    	    }
       }
    };
    public class Pluto {
    	public static void main(String[] args) {
    		MyThread my=new MyThread();
    		new Thread(my,"窗口A").start();
    		new Thread(my,"窗口B").start();
    		new Thread(my,"窗口C").start();
    		new Thread(my,"窗口D").start();
    		new Thread(my,"窗口E").start();
    		new Thread(my,"窗口F").start();
    		new Thread(my,"窗口G").start();
    		new Thread(my,"窗口H").start();
    		new Thread(my,"窗口I").start();
    		new Thread(my,"窗口J").start();
    	
        }
    }
    

    实验截图

    实验总结:

    本周的实验题目在书上有相关的代码,我的代码是按照书上的来写的,改了一些需要修改的地方。
    个人感觉如果要多线程进行售票,应该需要用到死锁,但是不会用。
    

    学习总结:

    在Java中,实现多线程代码有两种方式:一种是继承Thread类;另一种是实现Runnable接口。

    继承Thread类

    多线程的定义语法:

    class 类名称 extends Thread{
          属性***;
          方法***;
          public void run(){
               线程主体;
          }
    }
    

    如果想正确的启动线程,是不能直接调用run()方法的,而是应该调用从Thread类中继承而来的start()方法。

    在线程启动时虽然调用的start()方法,但实际上调用的是run()方法的主体。

    实现Runnable接口:

    在java中也可以通过实现Runnable接口的方式实现多线程。此接口定义如下:

    public interface Runnable{
        public void run();
    }
    

    通过Runnable接口实现多线程:

    class 类名称 implements Runnable{
         属性***;
         方法***;
         public void run(){
              线程主体;
         }
    }
    
  • 相关阅读:
    Android高效加载大图、多图解决方案,有效避免程序OOM
    修改Eclipse中项目在Apache Tomcat中的部署路径
    解决用户绕过Servlet直接访问jsp页面
    Java中文件的上传与下载
    Android菜鸟的成长笔记(1)——Android开发环境搭建从入门到精通
    Linux学习(1)vi编辑器的常用命令
    怎样获取运行计划
    如​何​使​用​P​H​P​开​发​高​效​的​W​E​B​系​统
    网页抓取信息(php正則表達式、php操作excel)
    hdu1078 记忆化搜索
  • 原文地址:https://www.cnblogs.com/hltltp/p/11723098.html
Copyright © 2011-2022 走看看