2021-07-14 多线程(创建线程-实现Runnable接口)

线程必须是Thread类或继承自Thread的类
实现Runnable接口的类不是线程(任务)


clipboard.png

实现方式好处:避免了单继承的局限性,在定义线程时,建议使用实现方式。


Thread和Runnable区别.png

两种方式区别:

继承Thread:线程代码存放在Thread子类的run方法中。
实现Runnable:线程代码存在接口的子类的run方法中。

卖票改进

/**
 * 需求:简单的卖票程序,多个窗口同时卖票
 * 实现Runnable接口
 */
class SaleTicket2 implements Runnable {

    private int ticket = 100;

    @Override
    public void run() {
        while (true) {
            if (ticket > 0) {
                try {
                    Thread.sleep(10);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(Thread.currentThread().getName() + " sale ..." + ticket--);
            }
        }
    }

}


public class TicketDemo2 {

    public static void main(String[] args) {
        SaleTicket2 t = new SaleTicket2();

        Thread t1 = new Thread(t);
        Thread t2 = new Thread(t);
        Thread t3 = new Thread(t);
        Thread t4 = new Thread(t);

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

    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容