- 实现Runnable接口
- 重写run方法 将要执行的操作卸载run方法中
- 创建实现Runnable接口的类对象
- 创建Thread对象 将Runnable接口对象作为构造参数传递给Thread
- 使用Thread对象调用start方法
- 存在线程安全问题 ```java
/**
- 创建人:LYY
- 创建时间:2022/4/26
- 模拟售票
- 同100张车票 同时多个线程抢票
- 每个线程执行一次 当前票数减一 */
// 1. 实现Runnable接口 public class Ticket implements Runnable{
private int count = 100;@Overridepublic void run() {// 2. 将要执行的操作 卸载run方法中while (count > 0) {System.out.println(Thread.currentThread().getName()+ "count = "+count);count--;}}
}
class TicketTest{
@Testpublic void ticketTest() {// 3. 创建Runnable接口实现类的对象Ticket ticket = new Ticket();// 4. 将Runnable接口实现类的对象作为参数 传递给Thread对象 创建线程// 创建线程1Thread t1 = new Thread(ticket);t1.setName("线程一:");// 创建线程2Thread t2 = new Thread(ticket);t2.setName("线程二:");// 创建线程3Thread t3 = new Thread(ticket);t3.setName("线程三:");t3.start();t1.start();t2.start();}
} ```
