Java多线程—两种卖票

来源:互联网 发布:冰川网络发行价 编辑:程序博客网 时间:2024/06/05 13:02
public class MyThread1 extends Thread{private int ticket=10;public void run(){for(int i=0;i<20;i++){if(this.ticket>0)System.out.println("i="+i+"卖票:ticket "+this.ticket--);}}}public class ThreadTicket {public static void main(String[] args) {MyThread1 mt1=new MyThread1();MyThread1 mt2=new MyThread1();MyThread1 mt3=new MyThread1();mt1.start();mt2.start();mt3.start();}}

运行结果:

public class MyThread1 implements Runnable{private int ticket=10;public void run(){for(int i=0;i<20;i++){if(this.ticket>0)System.out.println("i="+i+"卖票:ticket "+this.ticket--);}}}public class ThreadTicket {public static void main(String[] args) {MyThread1 mt=new MyThread1();Thread t1=new Thread(mt);t1.start();Thread t2=new Thread(mt);t2.start();Thread t3=new Thread(mt);t3.start();}}


运行结果:

学习心得:

       第一种方法,每个线程各卖了10张票,共卖30张。每个线程各自卖自己的票,无资源共享;

       第二种方法,Runnable实现了多线程的资源共享,通过给三个线程用同一个实例化对象。

0 0
原创粉丝点击