java-多线程卖票

一、继承Thread
/**
* @author ljj
* @date 2022/10/11 15:21
*/
public class MyThreadTest extends Thread {

private static int ticket = 100;

public void run() {
while (true) {
synchronized (MyThreadTest.class) {
if (ticket > 0) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "..." + ticket--);
} else {
break;
}
}
}
}

public static void main(String[] args) {
MyThreadTest t1 = new MyThreadTest();
MyThreadTest t2 = new MyThreadTest();
MyThreadTest t3 = new MyThreadTest();

t1.setName("窗口1");
t2.setName("窗口2");
t3.setName("窗口3");

t1.start();
t2.start();
t3.start();
}

}


二、实现runnable接口
package Thread;

public class MyRunnableTest implements Runnable {
    private int ticket = 20;
    @Override
    public void run() {
        while (true) {
            synchronized (this) {
                try {
                    Thread.sleep(100);  //更好的体现结果
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                if (ticket > 0) {
                    System.out.println(Thread.currentThread().getName() + "......" + ticket--);
                }
            }
        }
    }
}

class RunnableStart {
    public static void main(String[] args) {
        MyRunnableTest myRunnableTest = new MyRunnableTest();
        Thread t1 = new Thread(myRunnableTest, "窗口1");
        Thread t2 = new Thread(myRunnableTest, "窗口2");
        t1.start();
        t2.start();
    }
}

 

 
posted @ 2018-06-25 17:05  愚公钓愚  阅读(567)  评论(0编辑  收藏  举报