/*
* 需求:简单的买票程序
* 多个窗口买票。
*
* 创建线程的第二种方法: 实现Runnable接口
*
* 步骤:
* 1.定义类实现Runnable接口 。
* 2.覆盖Runnalbe接口中的run方法,目的: 将线程要运行的代码放在run方法中
* 3.创建 Thread线程对象实例
* 4.将Runnable类接口的子类对象作为实参 传给 Thread类的构造函数。
* 目的:自定义的run方法所属的对象是Runnable接口的子类对象,所以要让进程去执行指定方法的run方法,就必须明确该run方法所属对象 。
* 5.调用Thread类的 start方法开启线程,并调用Runnable接口子类的 run方法
*
*
* 设置Runnable接口的目的:
* 好处:突破单继承。
* 在定义线程时,建议使用实现方式
*
*
* 两种方式的区别:
* 继承Thread: 线程代码存放在Thread子类的run方法中。
* 实现Runnable:线程代码存放在接口的子类的run方法中。
*/
package test.itheima;
public class ThreadTicketDemo {
/**
* @param args
*/
public static void main(String[] args) {
/*
* Ticket t1 = new Ticket(); Ticket t2 = new Ticket(); Ticket t3 = new
* Ticket(); Ticket t4 = new Ticket();
*
* t1.start(); t2.start(); t3.start(); t4.start();
*/
Ticket t=new Ticket();
Thread t1=new Thread(t);
Thread t2=new Thread(t);
Thread t3=new Thread(t);
Thread t4=new Thread(t);
t1.start();
t2.start();
t3.start();
t4.start();
}
}
class Ticket implements Runnable {// Thread {
private static int tick = 10000;
public void run() {
while (true) {
if (tick > 0) {
System.out.println(Thread.currentThread().getName() + " sale: "
+ tick--);
}
}
}
}
[黑马程序员]多线程_学习笔记9
最新推荐文章于 2023-01-10 23:29:58 发布