并发编程(1)—— 基础概念

7 篇文章 0 订阅
7 篇文章 0 订阅

一、 并行和并发的区别

并行(parallelism): 是同一时刻,两个线程都在执行。(同一时刻,可以同时处理事情的能力)
并发(concurrency): 是同一时刻,只有一个执行,但是一个时间段内,两个线程都执行了。(与单位时间相关,在单位时间内可以处理事情的能力)
并行:
例:一个食堂有8个窗口,那么在同一时间内可允许8个人同时打饭,那么说明这个食堂的并行度为 8
在这里插入图片描述
并发:
例:一个食堂有8个窗口,每个人打饭的时间是30秒,那么在一分钟内,这个食堂的并发度为16
在这里插入图片描述

二、cup

1、cpu核心数和线程数的关系

  1. 最早的时候cpu核心数与线程数的比例为 1:1。
  2. 在intel提出超线程技术之后,cpu核心数与线程数的比例为 1:2。

2.cpu时间片轮转机制
cpu时间片轮转机制是一种最古老,最简单,最公平,使用最广泛的一种算法,又称为RR(Round-Robin)调度,含义就是说,给每一个进程分配一个时间段,这个时间段就被称为这个进程的时间片(指这个进程允许运行的时间),如果到了这个时间片结束的时候,操作系统会把分配给这个进程的cup剥夺掉,分给另外一个进程,如果在这个时间内这个进程被阻塞或者执行完,cpu就会进行切换。
cpu轮转机制最重要的是一个时间片的长度

三、线程和进程的区别

  • 进程是操作系统进行资源分配和调度的一个独立单位;线程是进程的一个实体,是CPU调度和分派的基本单位
  • 一个程序至少一个进程,一个进程至少一个线程
  • 每个进程都有独立的内存地址空间;系统不会为线程分配内存,线程组之间只能共享所属进程的资源
  • 程序之间的切换会有较大的开销;线程之间切换的开销小

四、高并发编程的优缺点

优点: 充分利用cpu资源,加快用户响应时间,使程序模块化,异步化
缺点 线程共享资源,存在冲突;容易发生死锁;线程安全问题;启用过多的线程容易搞垮机器

下一篇:并发编程(2)—— 创建线程的方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值