JAVA常见面试题-有几种创建线程的方法

答:三种

1.定一个类继承Thread类创建线程

重写run()方法,run()方法中的代码就表示线程要完成的任务(也就是说run()方法就是执行体),实例化这个定义的类并执行start()方法来启动该线程。

2.定义一个类实现Runnable接口

重写run()方法,run()方法中的代码就表示线程要完成的任务(也就是说run()方法就是执行体),实例化定义类,并且把它传给实例化的Thread类,和线程名字(new Thread(myth,”新线程1").start(); myth为实例化的自定义类)并执行start()。

3.定义一个类实现Callable接口

并实现call()方法,call()方法中的代码就表示线程要完成的任务(也就是说call()方法就是执行体,并且带有返回值),实例化自定义对象,实例化FutureTask对象包装实例化的自定义对象(FutureTask<Integer> integerFutureTask = new FutureTask<>(myth);),并把他传给实例化的Thread类,和线程的名字(new Thread(integerFutureTask, “线程1”).start();)并执行start()。

注意:其中FutureTask实现了RunnableFuture接口,而RunnableFuture继承了Runnable,Future并分别提供了参数为callable、参数为Runnable的构造函数,所以可以把Runnable类型的线程写成callable,然后封装进一个由执行者调度并在必要时可以取消的FutureTask。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

waviss

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值