用Java runnable接口模拟多窗口(线程)销售同类型票的并行程序

参考了此篇博文(http://blog.csdn.net/liutengteng130/article/details/20036517),其中,就使用thread和runnable接口实现售票多窗口模拟问题。

就runnable接口实现方法的特性——多线程无差错修改类公共变量值问题,觉得很有价值,对源代码做了批注,拿来分析下和大家共享:

class ThreadTest implements Runnable{
   private int ticket =100;  //100张票需要销售

   public void run(){        //Runnable接口
       while(true){
         if(ticket > 0){
           //不同线程售票,并修改公共类属性————注意:这里有价值之处在于并没有申明锁
           System.out.println(Thread.currentThread().getName() + " is saling ticket " + ticket--);
         }else{
            break;
         }
       }
   }  

   public static void main(String[] args){
      ThreadTest t = new ThreadTest();
      //创建4个线程,并依次启动
      new Thread(t).start();
      new Thread(t).start();
      new Thread(t).start();
      new Thread(t).start();
   }
}  
时间: 2024-10-19 09:18:06

用Java runnable接口模拟多窗口(线程)销售同类型票的并行程序的相关文章

java多线程--实现Runnable接口

package unit8; import java.applet.Applet; import java.awt.Label; import java.awt.TextField; public class TestRunnable extends Applet implements Runnable{ Label prompt1 = new Label("The first thread:"); Label prompt2 = new Label ("The second

Java多线程01(Thread类、线程创建、线程池)

Java多线程(Thread类.线程创建.线程池) 第一章 多线程 1.1 多线程介绍 1.1.1 基本概念 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程.一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序. 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 1.1.2 单线程程序 - 从入口m

java系统学习(十) --------线程

线程的基本概念 进程以及使用环境 程序是计算机指令的集合,它以文件形式存储在磁盘上,而进程就是一个执行中的程序,每一个进程都有其独立的内存空间和系统资源.进程就是一个运行的程序,Windows操作系统是支持多进程的操作系统,即同一时间l可以执行多个程序,每个程序是在自己独立的内存空间内,使用自己被分配到的系统资源.其实,这种说法并不准确,一个CPU在某个时刻,实际上只能运行一个程序,即一个进程.所谓的支持多进程,其实就是CPU在非常快速的交替轮流执行多个程序,例如,利用Windows操作系统可以

Java多线程-如何创建并运行线程

以下内容转自http://ifeve.com/creating-and-starting-java-threads/: Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类. 可以用如下方式用java中创建一个线程: Tread thread = new Thread(); 执行该线程可以调用该线程的start()方法: thread.start(); 在上面的例子中,我们并没有为线程编写运行代码,因此调用该方法后线程就终止了. 编写线程运行时执行的代码

Java总结(十)—实现Runnable接口创建线程,线程安全同步,死锁(哲学家进餐问题),读写锁

一.通过实现Runnable接口创建线程 定义实现Runnable接口的类 (1)Runnable接口中只有一个方法public void run();用来定义线程运行体: class MyRun implements Runnable(){ public void run(){ 线程执行的具体代码 } } (2)创建线程的实例的时候将这个类的实例作为参数传递到线程实例内部.然后再启动: Thread thread=new Thread(new MyRun()); Thread.start();

Java线程示例 - 继承Thread类和实现Runnable接口

进程(Process)和线程(Thread)是程序运行的两个基本单元.Java并发编程更多的是和线程相关. 进程 进程是一个独立的执行单元,可将其视为一个程序或应用.然而,一个程序内部同事还包含多个进程.Java运行时环境就是一个单独的进程,在它内部还包含了作为进程的各种类和程序. 线程 可以将线程看做轻量级的进程.线程存在于进程当中,需要的资源开销较小.同一进程中的线程共享进程的资源. Java多线程 每一个Java引用都只要有一个线程 - 主线程(main thread).虽然后台还运行着许

JAVA线程应用Thread:创建线程的第二种方式:实现Runnable接口

/* 需求:卖票小程序! 思路:实现多个窗口(线程)同时售票. 步骤:1,定义类实现Runnable接口. 2,覆盖Runnable接口中的run方法. 3,通过Thread类创建线程对象. 4,将Runnable接口的子类对象作为实际参数传入Thread类的构造函数当中. 5,调用Thread类的start方法开启线程并调用Runnabke接口的run方法. */ 代码如下 class Ticket implements Runnable//extends Thread//实现Runnable

Java线程演示样例 - 继承Thread类和实现Runnable接口

进程(Process)和线程(Thread)是程序执行的两个基本单元. Java并发编程很多其它的是和线程相关. 进程 进程是一个独立的执行单元,可将其视为一个程序或应用.然而,一个程序内部同事还包括多个进程. Java执行时环境就是一个单独的进程,在它内部还包括了作为进程的各种类和程序. 线程 能够将线程看做轻量级的进程. 线程存在于进程其中,须要的资源开销较小.同一进程中的线程共享进程的资源. Java多线程 每个Java引用都仅仅要有一个线程 - 主线程(main thread).尽管后台

Java知多少(58)线程Runnable接口和Thread类详解

大多数情况,通过实例化一个Thread对象来创建一个线程.Java定义了两种方式: 实现Runnable 接口: 可以继承Thread类. 下面的两小节依次介绍了每一种方式. 实现Runnable接口 创建线程的最简单的方法就是创建一个实现Runnable 接口的类.Runnable抽象了一个执行代码单元.你可以通过实现Runnable接口的方法创建每一个对象的线程.为实现Runnable 接口,一个类仅需实现一个run()的简单方法,该方法声明如下:    public void run( )