Java多线程-并发和并行

本文详细解释了并发和并行的概念,并通过比喻帮助理解两者之间的区别。着重阐述了并发与并行在单CPU系统与多CPU系统中的实现方式,以及如何利用并发与并行提高单个处理系统的吞吐量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1、并发和并行的区别

可由上图形象指出两者的区别:
1)定义:
并发:操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在 同一个处理机上运行,但任一个时刻点上 只有一个程序在处理机上运行。
并行: 在操作系统中,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的
来个比喻:并发和并行的区别就是一个人同时吃三个馒头和三个人同时吃三个馒头;

单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent)。而在多CPU系统中,可以让两个以上的线程同时运行,这种可以同时让两个以上线程同时运行的方式叫做并行(parallel)。 

2)并发通常指提高运行在 单处理器上 的程序的性能;

并发是有状态的,“具有可论证的确定性,但是实际上具有不可确定性”;

"并发"在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,从宏观外来看,好像是这些进程都在执行。

使用多个线程可以帮助我们在单个处理系统中实现更高的吞吐量,如果一个程序是单线程的,这个处理器在等待一个同步I/O操作完成的时候,他仍然是空闲的。在多线程系统中,当一个线程等待I/O的同时,其他的线程也可以执行。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值