问答详情
源自:2-4 应用揭秘

请问继承方法实现线程,实例化的时候只new一个线程而不是三个,难道不也是只卖五张票?

public class Ticket extends Thread {
    private int tic = 5;

    @Override
    public void run() {
        while (tic > 0) {
            --tic;
            System.out.println(Thread.currentThread().getName() + "剩下" + tic + "张票");
        }
    }

    public static void main(String[] args) {
        Ticket ticket = new Ticket();
        Thread thread1 = new Thread(ticket, "线程1");
        Thread thread2 = new Thread(ticket, "线程2");
        Thread thread3 = new Thread(ticket, "线程3");
        thread1.start();
        thread2.start();
        thread3.start();
    }
}


提问者:peanut丶w 2019-02-16 14:28

个回答

  • 斌哥在此
    2020-12-01 14:17:25

    new多次就不是用同一资源了

  • 慕丝sweet
    2019-02-16 18:56:30

    我发现是你说的那样昵,不管是继承Thread还是实现Runnable,关键还是看new了几个线程,如果都只是new1个线程,就一共卖票5张,因为3个对象继承Thread或者实现Runnable的对象都共享同一个资源。