JAVA三种创建线程方式

JAVA三种创建线程方式
一、什么是线程?

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位,可以使用多线程对进行运算提速。
比如,如果⼀个线程完成⼀个任务要100毫秒,那么10个线程完成改任务只需10毫秒。

二、三种线程创建方式
1 、继承Thread类

public class ExteThred extends Thread {

    public static void main(String[] args) {
        new ExteThred().start();//创建线程1
        new ExteThred().start();//创建线程2
    }
    @Override
    public void run() {
        for(int i=0;i<=50;i++){
            System.out.println(Thread.currentThread().getName()+"======"+i);
        }
    }
}

2 、实现Runnable接口

public class ImplRunnable implements Runnable {

    public static void main(String[] args) {
        ImplRunnable impRunnable = new ImplRunnable();

        new Thread(impRunnable,"Thread1").start();//创建线程1
        new Thread(impRunnable,"Thread2").start();//创建线程2
    }
    @Override
    public void run() {
        for(int i=0;i<=50;i++){
            System.out.println(Thread.currentThread().getName()+"======"+i);
        }
    }
}

3 、第三种,通过Callable和Future接口创建线程

public class ThirdThreadImp {

    public static void main(String[] args) {
        Date myDate = new Date(System.currentTimeMillis());
        //这里call()方法的重写是采用lambda表达式,没有新建一个Callable接口的实现类
        FutureTask<Integer> task =  new FutureTask<Integer>((Callable<Integer>)()->{
            int i=0;
            for(;i<50;i++) {
                System.out.println(Thread.currentThread().getName()+"======" + i);
            }
            return i;
        });
        new Thread(task,"Thread0").start();
        try {
            System.out.println("返回值:" + task.get());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

如何实现多线程共享数据

public class Ticket implements Runnable{

     private int ticket = 10;
     public void run() {
         while(ticket>0){
             ticket--;
             System.out.println("当前票数为:"+ticket);
         }
     }

    public static void main(String[] args) {
        Ticket t = new Ticket();
        new Thread(t,"售票一").start();
        new Thread(t,"售票二").start();
    }
 }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值