多线程下的并发理解

写多了多线程程序,对程序的串行与并行和操作系统的并发概念会有点混乱,现在整理一下概念。

并发:

  •   并发原本是处在操作系统层次上,讲的是处理器的逻辑核可以在同一个时间段处理多个任务
  •   在多个任务上采用比如:时间片轮转法,多级反馈优先队列,高响应比等的算法来协调对每个任务的处理时间。
  •   这里的任务是指运行在操作系统范围内的进程或者线程。对于执行实体在干什么并不关心。事实上,执行实体干的活就是程序的逻辑。

并行与串行:

  •   这两个概念应用在编程范围内比较恰当,当然也非常适用于硬件指令流水线。
  •   与并发最大的区别在于立足点不同,并发站在操作系统上看是不同进程实体代表的指令流的来回调度切换。
  •   并行站在程序逻辑上看是多个程序不相干指令流的走向或者逻辑结构,这一层并不考虑指令调度问题。更严谨的说是不考虑和其他程序的指令调度问题。
  •   并行指开启多个线程,执行多个不同的函数或任务,重点在执行的函数和任务上,对于线程运行在哪不关心,视不同情况可能会访问到共同的数据集,此处需要做互斥。
  •   串行在此指程序或任务的执行指令在任何一个时间点上只被一处执行且从程序执行开始到结束,当前活动空间内不存在其他并行的指令流,当然也就不存在数据竞争问题。

当前说法比较粗糙,再思考思考不断完善

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微服务生态

由多线程内存溢出产生的实战分析

一日凌晨,手机疯狂报警,短信以摧枯拉朽之势瞬间以百条的速度到达,我在睡梦中被惊醒,看到短信的部分内容如下:

15660
来自专栏开源优测

你离测试开发还有多远?

你可能差20000行代码的积累,但你写了200行的hello world来告诉自己不行

10430
来自专栏MongoDB中文社区

MongoDB 3.6中的新功能 (1) - 发展的速度

New in MongoDB 3.6. What’s New in MongoDB 3.6. Part 1 – Speed to Develo

16010
来自专栏子勰随笔

SDK设计心得之接口设计

2.2K90
来自专栏SDNLAB

从NETCONF/YANG看网络配置自动化

1 引子 NETCONF和YANG的目的是以可编程的方式实现网络配置的自动化,从而简化和加快网络设备和服务的部署,为网络运营商和企业用户节约成本。NETCONF...

51750
来自专栏技术博文

linux下使用ffmpeg将amr转成mp3

接到需求要在Linux环境下将amr转换为mp3,windows下直接使用第三方jar包封装的exe方法即可,但不支持Linux,上网爬完资料说是用ffmpeg...

40370
来自专栏IT大咖说

MySQL高可用架构案例篇:UCloud最佳实践

19730
来自专栏SDNLAB

ONOS 实战分享(一):项目建立、调试到热部署

以上是ONOS的架构图,相信大家已经熟记于心了 本文将在Distributed Core Tier,以开发一个控制器内的模块为例,带领大家从项目的建立,导入I...

48370
来自专栏Seebug漏洞平台

检测本地文件躲避安全分析

来源:安全客 原文链接:https://www.brokenbrowser.com/detecting-local-files-to-evade-analyst...

41540
来自专栏Linyb极客之路

高并发的核心技术-幂等的实现方案

一、背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 1. 前端重复提交选中的数据,应该后台只产生对应这个...

13230

扫码关注云+社区

领取腾讯云代金券