八股训练营第 31 天 | Java 创建线程有哪几种方式?线程start和run的区别?

Java 创建线程有哪几种方式?

  1. 继承 Thread 类:重写其 run() 方法,然后 start() 调用。
  2. 实现 Runnable 接口:创建一个实现了 Runnable 接口的类,并实现 run() 方法,将其传递给 Thread 对象。
  3. 实现 Callable 接口:实现 call() 方法。需要使用 Thread + FutureTask 配合。适合需要在未来某个时刻获取 Callable 任务的计算结果的场景。
  4. 使用线程池:使用 Executors 类创建线程池,通过线程池来管理线程的创建和复用。

线程start和run的区别?

  1. run 方法是线程的执行体,包含线程要执行的代码。但是调用 run 方法只会在当前线程的上下文中执行,不会创建一个新线程。
  2. start 方法会创建一个新线程,然后执行 run 方法中的代码。调用 start 方法会为线程分配系统资源,并将线程处于就绪状态。当调度器选择新线程后,就会执行 run 方法中的代码。

因此,虽然可以直接调用 run 方法,但这并不会创建一个新线程,而是在当前线程中执行。要想实现多线程执行,则必须调用 start 方法开启一个新线程。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值