Java并发编程基础

什么是并发编程?

deepseek介绍,并发编程(Concurrent Programming)是指程序设计的一种范式,它允许程序中的多个任务在重叠的时间段内执行,从而提高资源利用率和系统吞吐量。

好处:1.加快响应速度

           2.代码拆分异步化

           3.多核CPU,充分利用CPU资源

进程、线程、协程

进程(Process)

定义:进程是操作系统进行资源分配和调度的基本单位,是程序的一次执行实例。

        这里主要理解为对内存进行分配的基本单位,主要为内存,其余少量网络IO等

线程(Thread)

定义:线程是进程内的执行单元,是CPU调度的基本单位。

        一个进程包括多个线程

 协程(Coroutine)

定义:协程是一种比线程更加轻量级的并发编程模型,也被称为"微线程"或"用户态线程"。协程由程序员在用户空间显式控制调度,而不是由操作系统内核调度。

        在JDK19版本(非LTS)引入,在java中称为虚拟线程。正式版应用选择23年发布的JDK21(LTS)版本

进程间通信

进程间通信(Inter-Process Communication,IPC)是指在不同进程之间传播或交换信息的技术方法。由于进程拥有独立的地址空间,操作系统需要提供特殊机制来实现进程间通信。

通信方式:

  • 管道

                匿名管道(Pipe):父子进程、兄弟进程间通信

                命名管道(Fifo): 无亲缘关系间进程通信

  • 消息队列(Message Queue)存储在内核中
  • 共享内存 (Shared Memory) 最高效的IPC方式
  • 信号量(Semaphore)
  • 信号(Signal)
  • 套接字(Socket)

并行、并发

        并发:某一时间内,处理任务的数量

        并行: 同时执行多个任务

JAVA线程

        线程状态/生命周期

JAVA一共有6种状态

        初始态(NEW),此时创建了线程对象,但是没有调用start()方法

        运行状态(RUNABLE), 在调用start()后转换为运行状态。分为等待(ready)或者运行(running)状态

        阻塞状态(BLOCKED), 等待进去synchronized方法块

        等待状态(WAITING),不带参的wait(),等方法

        超时等待(TIMED_WAITING),带超时时间的等待

        终止(TERMINATED),正常运行完成

常见面试题:

        创建线程有哪些方式?

        个人理解:

        在Thread类上,声明了有2种方式去创建一个线程,一种是继承Thread类,另一种是实现Runnable接口。

常见的Callable是通过FutureTask包装成Runnable,在交给Thread去执行。

通过线程池创建线程,是一种池化技术,避免了重读创建带来的资源消耗。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值