多线程加强

来源:互联网 发布:赵薇 万家文化 知乎 编辑:程序博客网 时间:2024/06/05 06:20
public class TicketWin implements Runnable{    private String name=null;    //基本数据类型变量不能当对象锁,我们可以造一个与它平行的对象来代替它当锁    private static int num=200;    private static Object obj=new Object();    public TicketWin(String name) {        this.name=name;    }    @Override    public void run() {        synchronized ( obj ) { //对象锁 ----注意,这里不能用this因为是静态的            while (true) {                if (num == 0) {                    break;                }                System.out.println(num--);            }        }    }}
public class SaleTicket {    public static void main(String[] args) {        Thread t1 = new Thread( new TicketWin("窗口1") );        Thread t2 = new Thread( new TicketWin("窗口2") );        Thread t3 = new Thread( new TicketWin("窗口3") );        Thread t4 = new Thread( new TicketWin("窗口4") );        t1.start();        t2.start();        t3.start();        t4.start();    }}
原创粉丝点击