java中创建线程的三种方式

java中线程创建的三种方式

  1. 什么是线程

进程:一段代码在特定数据集合上的一次运行活动,操作系统资源分配的基本单位。(换了个数据集合或者换了代码都不算是同一个进程)
线程:是进程中的一个实体,本身是不会独立存在的。是进程的一个执行路径,一个进程中至少有一个线程,进程的多个线程共享进程的资源。任务调度和执行的基本单位。
操作系统中大概是这样的:
在这里插入图片描述
在JVM中,这个图可以再细化一下,大概是这样的:
在这里插入图片描述
线程以CPU轮转(一般来说,还有其他的调度方式)的方式占用CPU,当时间片轮转到这个线程的时候,就拿到它自己的PC和栈资源,用于执行当前线程的代码。

  1. 线程创建与运行

Java中有三种线程创建方式:实现Runnable接口的run方法,继承Thread类并重写run方法,使用FutureTask方式。

  • 继承Thread类:
    在这里插入图片描述

  • 实现Runnable接口:
    在这里插入图片描述

  • FutureTask:

首先看一下关于FutureTask是个什么东西,可以参考这一篇博客:
https://blog.csdn.net/lbx1314ybfq/article/details/100677262

使用FutureTask异步任务创建线程:
在这里插入图片描述
另外,FutureTask也是唯一一个能够获取到返回值的方法。(线程池好像也是基于这个实现的)

参考资料:《Java并发编程之美》 by 翟陆续 薛宾田

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值