线程实现的两种方式

线程实现的第一种方式(继承Thread类)、

下面介绍一个三窗口买票问题

package com.yk.java;

/**
 * 三窗口买票
 */

class Windows extends Thread{
    private static int ticket=100;

    @Override
    public void run() {
        while (true){
            if(ticket>0){
                System.out.println(getName()+"买到了,票号是"+ticket);
                ticket--;
            }else {
                break;
            }
        }
    }
}
public class ThreadDemo{
    public static void main(String[] args) {
        Windows w1=new Windows();
        Windows w2=new Windows();
        Windows w3=new Windows();
        w1.start();
        w2.start();
        w3.start();
    }
}

首先创建一个继承Thread类的类,接着在类中重写run方法,最后在主函数中创建对象,通过对象来调用start方法,start方法有两个作用1。启动线程2.调用线程中的run方法

第二种,用runable接口实现继承

package com.yk.java;

/**
 * 比较创建线程的两种方式
 * runable实现接口 (好)
 *
 * 继承Thread类   继承有局限型,单继承
 *
 */
class MThread implements Runnable{
    private int ticket=100;
    @Override
    public void run() {
        while (true){
            if(ticket>0){
                System.out.println(Thread.currentThread().getName()+"买到了,票号是"+ticket);
                ticket--;
            }else {
                break;
            }
        }

    }
}
public class helloWorld {
    public static void main(String[] args) {
        MThread mThread=new MThread(); //对象作为参数去传递
        Thread m1=new Thread(mThread);
        Thread m2=new Thread(mThread);
        Thread m3=new Thread(mThread);

        m1.start();
        m2.start();
        m3.start();


    }
}

实现runable接口,重写run方法
只创建一个对象,然后对象作为参数去传递到Thread对象中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值