setName("窗口1"); tw2.setName("窗口2"); tw3.setName("窗口3"); tw1.start(); tw2.start(); tw3.start(); } } 运行结果: 2、使用实现 Runnable 接口的方式 一个类通过继承 Thread 来实现多线程的话,则不适合多个线程共享资源,而通过实现 Runnable 就可以很轻松做到这一点。 通过实现 Runnable 接...
1.实现一个卖票的功能,大家根据在汽车站或者火车站那个卖票的情况,假设有三个窗口,每个窗口就像一个线程,卖票的这几个窗口同时卖票, 就像实现多线程。 1 public class MyRun implements Runnable { 2 // 共享资源 3 4 private int count = 6; 5 6 @Override 7 public void run() { 8 for (int i = ...
使用三个线程去卖票 */publicclassDemo01TicketTest{publicstaticvoidmain(String[]args){//创建runnable接口类实现对象Ticket t=newTicket();//创建三个线程实现卖票任务并启动newThread(t).start();newThread(t).start();newThread(t).start();// 如果多个线程操作共享数据,那么有可能引发线程安全问题。本类是...
我们现在有100张票,然后分四个窗口来卖,直到卖完为止。 思路: 1、先定一个一个票类,描述票的属性,还有打印卖出的票,并且实现Runnable中的run方法。 2、定义一个主方法,把这个类当成一个独立的运行程序。 3、在主方法当中创建4个线程来卖票。 代码: 1classTicket implements Runnable2{34intnum =100;56public...
java 多线程之卖票两种方式 1.通过extends Thread 1/*2需求:简单的卖票,多个窗口同时买票3(共用资源)4创建线程的第二种方式:实现Runnable接口56步骤:71,定义类实现Runnable接口82,覆盖/重写Runnable接口中的run方法9将将线程要运行的代码存放在该run方法中103,通过Thread类建立线程对象114,将Runnable接口的子类对象...
启用了四个线程,但是只有一个窗口在卖票。 在循环开始外围进行同步代码块,当第一个线程进入的时候,因为一直在循环所以代码没有执行完,其他的线程不能执行该同步代码块的代码。所以,...
[javaSE] 多线程(售票例子) 需求:简单的买票程序,多个窗口卖票,多线程 定义一个类Ticket实现Runnable接口, 定义成员属性int类型的票数nums 实现run()方法,run方法中 while(true)的死循环,打印nums-- 获取Ticket对象,new出来 获取Thread()对象,new出来,构造参数:Runable对象...
案例 那么,首先我就举一个电影院卖票的例子来模拟多线程。 复仇者联盟4上映的那段时间电影院那可是门庭若市啊,那么我们假设现在有一个电影院正在上映复仇者联盟4,共有100张票,而它有三个售票窗口,我们来模拟一下这个电影院的售票情况。 首先创建SellTicket类继承Thread: ...
private int ticketCount = 10;// 总的票数,这个是共享资源,多个线程都会访问 Object mutex = new Object();// 锁,自己定义的,或者使用实例的锁 /** * 卖票 */ public void sellTicket() { synchronized (mutex)// 当操作的是共享数据时,
很简单, 出票里加锁就行了完整代码:public class Test {public static void main(String[] args) {for(int i=0; i<3; i++){new Thread("线程 " + i){public void run() {while(true){int p = getNumber();if(p >0 ){System.out.println(getName() + " 票号: " + p);}else...