java线程的创建三种方法

方法一:继承Thread

1、定义一个线程类继承Thread

2、重写run方法,里面是定义线程以后要干什么

3new一个新线程对象

4、调用start方法启动线程(执行的还是run方法)

优缺点:

优:编码简单

缺:线程类已经继承了Thread,无法继承其他类,不利于扩展

注意点:

//如果调用run会被当初一个普通方法

//要把子线程放在主线程之前,不然会导致主线程一直先跑完

 

方法二:实现Runnable接口

1、定义一个线程任务类,实现Runnable接口

2、重新run方法,定义线程执行任务

3、创建一个任务对象

4、把任务对象交给Thread处理

5、启动线程

优缺点:

优:利用接口实现,可继续继承类和实现接口,拓展性强

缺:编程时多一层对象包装,如果线程有执行结果不能直接返回

注意点:

可利用匿名类实现 简化代码

new Thread ( () -> {

for(int i=0; i<10; i++){

System.out.println("子线程3执行输出"+i);

}

}).start();

前两种方式都不能直接返回结果

方法三:利用CallableFutureTask接口实现

1、定义任务类实现Callable接口,应该申明线程任务执行完毕后的结果的数据类型

2、重写call方法(任务方法)

3、创建Callable任务对象

4、把Callable任务对象交给FutureTask

5、交给线程处理

6、启动线程

优缺点:

优:利用接口实现,可继续继承类和实现接口,拓展性强

       可以在线程结束后去获取线程执行的结果

缺:编码复杂一点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值