JAVA多线程入门类和接口

本文介绍了Java中的多线程概念,包括进程与线程的区别,以及如何通过实现Runnable接口、Callable接口和继承Thread类来创建和管理线程。重点讲解了线程的生命周期和Thread类与Runnable接口的优劣比较。
摘要由CSDN通过智能技术生成

目录

一、Java多线程

1.1什么是多线程

1.2什么是进程

1.3java线程的生命周期

二、如何实现多线程

2.1实现Runnable接口

1.2实现Callable接口

1.3继承Thread类

1.4 Thread类的构建方法

1.5Thread类与Runnable接口的比较


1.5Thread类与Runnable接口的比较


一、Java多线程

1.1什么是多线程

指的是在一个进程中同时运行多个线程,每个线程都可以独立执行不同的任务或操作。 与单线程相比,多线程可以提高程序的并发性和响应能力。

1.2什么是进程

是指正在运行的程序的实例。每个进程都拥有自己的内存空间、代码、数据和文件等资源,可以独立运行、调度和管理。在操作系统中,进程是系统资源分配的最小单位,是实现多任务的基础。

1.3java线程的生命周期

Java 线程的生命周期  

新建状态(New):当线程对象被创建但尚未启动时,线程处于新建状态。

就绪状态(Runnable):当线程获得CPU时间片并执行时,线程处于就绪状态。  

运行状态(Running):当线程获得CPU时间片并执行时,线程处于运行状态。  

阻塞状态(Blocked):当线程在等待某个条件的时候,会进入阻塞状态,直到条件满足。  

等待状态(Waiting):当线程等待某个条件的时候,会进入等待状态,直到条件满足。  

超时等待状态(Timed Waiting):当线程等待某个条件的时候,可以设置一个超时时间,超过这个时间后线程会进入超时等待状态。

 终止状态(Terminated):线程执行完任务或发生异常后,线程处于终止状态,不再执行。

二、如何实现多线程

2.1实现Runnable接口

1.2实现Callable接口

Callable与Runnable类似,都是只有一个抽象方法的函数式接口,不同的是,Callable有返回值。

1.3继承Thread类

 我们在程序⾥⾯调用了 start() 方法后, 虚拟机会先为我们创建⼀个线程, 然后等到这个线程第⼀次得到时间片时再调用 run() 方法。 

1.4 Thread类的构建方法

Thread类是一个Runnable接口的实现类,通过init的调用来实现初始化。

init方法的一些参数:

 g:线程组, 指定这个线程是在哪个线程组下;

target:指定要执行的任务;

name:线程的名字,多个线程的名字是可以重复的。

acc:用于初始化私有变量 inheritedAccessControlContext 。

inheritThreadLocals:可继承的ThreadLocal ,Thread类里面有两个私有属性来支ThreadLocal。

1.5Thread类与Runnable接口的比较

 由于Java“ 单继承,多实现 ” 的特性,Runnable接⼝使⽤起来⽐ Thread 更灵活。 

Runnable接口出现更符合面向对象,将线程单独进行对象的封装。

 Runnable接口出现,降低了线程对象和线程任务的耦合性。

 如果使用线程时不需要使用 Thread 类的诸多⽅法,显然使用Runnable接口更为轻量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值