并发基础

操作系统 进程 线程之间的关系

操作系统是包含多个进程的容器 每个进程容纳多个线程的容器

什么是进程

Process 指的是程序的一次执行。在用户下达运行程序的命令后,就会产生进程

进程是程序的真正运行实例,是资源分配的基本单位

什么是线程

线程是CPU的基本调度单位,每个线程执行的都是进程代码的某个片段

进程和线程的不同

起源不同

先有的进程 后有的线程

线程的诞生是为了提高程序的运行效率

概念不同

进程 一个程序运行的实例 是资源分配的基本单位

线程 是CPU调度的基本单位

内存共享方式不同

不同的进程 都会被分配到一定的内存

不同进程间的内存不共享

同一个进程内的不同线程,可以共享定量的内存,方便于线程之间的合作;

拥有的资源不同

线程的拥有的资源一定少于进程 但是线程也拥有自己独有内容

共享的内容

进程的代码段(最典型)

进程的公有数据

进程打开的文件描述符

信号处理器

进程当前目录

进程用户ID与进程组ID

线程独有的内容

线程之间也不共享 有如下:

线程ID

寄存器组的值

线程的堆栈

错误返回码

线程的信号屏蔽码

数量不同

一个进程可以有很多很多个线程

开销不同

线程的创建,终止时间比进程短

同一进程内的线程切换时间比进程切换短

同一进程的各个线程间共享内存和文件资源,可以不通过内核进行通信(进程间需要通过内核通信)

相似点

生命周期 状态上面

一些JVM自动启动的线程

Signal Dispatcher 把操作系统发来的信号分发给适当的处理程序

Finalizer 执行finalize方法

Reference Handler 和GC 有关

main 主线程

什么是多线程

当个进程中使用两个或者两个以上的线程

为什么需要多线程

1 提高CPU利用率

提高处理速度 避免无效等待

2 提高用户体验 避免卡顿

并行处理 提高性能 通常是服务器领域(Tomcat) 用多个线程去接受Http请求

3 便于编程建模

4 计算机性能定律

摩尔定律

阿姆达尔定律 处理器越多 程序执行越快 但有上限 取决于程序中串行部分的比例 并行的比例越高多处理器效果越明显

多线程的局限

性能问题:上下文切换带来的消耗

异构化任务(任务结构不一样) 很难高效并行

线程安全问题 死锁等

串行 并行 并发

串行 一个一个处理

并行 一起发送出去

并发

Concurrency 单个处理器 逻辑上的同时执行

并行

Parallelism 多个处理器 事实上的同时执行

并发的两种概念

形容多个任务的执行状态

两个或多个任务可以在重叠时间段(一段时间内)内启动,运行和完成

并行(两个线程同时执行)一定是并发 并发不一定是并行

对并发性的简称

不同的部分可以无序或者同时进行,且不影响最终的执行结果

什么是高并发

同一个时间内有很多请求给服务器并行处理。(一种状态)

高并发和多线程联系和不同

多线程是一种高并发的解决方案

高并发不意味着多线程 redis

高并发有哪些指标

QBS 每秒查询数

带宽

PV 一天之内的点击量

UV 在PV基础上去重 一个人的访问

IP和UV 不同 同一个局域网内 多个人 IP一直 Cookie不同 UV更多等等

并发连接数 每个时刻服务器接收请求的数目

服务器平均请求时间

同步与异步

同步 发送请求一直等服务器响应才继续执行 响应端不会提醒你

异步 发送请求后可以继续执行其他的 响应端可以主动提醒你

阻塞非阻塞

通常是站在Http请求的角度

同步阻塞 发送请求以后什么都不做 就是阻塞

同步非阻塞 发送请求以后 每隔几分钟看看有没有好 同时干别的事情

异步阻塞 响应端可以主动提醒你 但是自己还是什么都不做

异步非阻塞 响应端可以主动提醒你 自己去做别的事情

单核CPU运行多线程有意义吗

有 执行并行虽然是不可能的 因为程序未来的运行平台不确定 单CPU多线程,是尽力在压榨CPU的使用率

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值