多线程下的并发理解

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

并发:

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

并行与串行:

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏博客园迁移

日常理解

{ 空 } 1. 什么叫线程安全?servlet是线程安全吗? { 答:如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次...

732
来自专栏Java职业技术分享

并发模型比较

Golang 的特色之一就是 goroutine ,使得程序员进行并发编程更加方便,适合用来进行服务器编程。作为后端开发工程师,有必要了解并发编程面临的场景和常...

440
来自专栏Java帮帮-微信公众号-技术文章全总结

基于Redis实现分布式锁-Redisson使用及源码分析【面试+工作】

在分布式场景下,有很多种情况都需要实现最终一致性。在设计远程上下文的领域事件的时候,为了保证最终一致性,在通过领域事件进行通讯的方式中,可以共享存储(领域模型和...

1002
来自专栏Java职业技术分享

并发模型比较

Golang 的特色之一就是 goroutine ,使得程序员进行并发编程更加方便,适合用来进行服务器编程。作为后端开发工程师,有必要了解并发编程面临的场景和常...

490
来自专栏java达人

调用外部api时的数据一致性问题

春节又要来了,远行的小伙伴们将开始一场刺激的抢票之旅,关于购票,从程序角度上而言,大致分为这么几步: 1、 检查是否有剩余的票 2、 购票后票数减一 3、...

4308
来自专栏我是攻城师

Spark如何读取一些大数据集到本地机器上

3644
来自专栏Spark学习技巧

Java面试官最爱的volatile关键字

在Java相关的岗位面试中,很多面试官都喜欢考察面试者对Java并发的了解程度,而以volatile关键字作为一个小的切入点,往往可以一问到底,把Java内存模...

3606
来自专栏温安适的blog

保证MQ消息传递的一致性

4396
来自专栏木木玲

设计模式 ——— 中介者模式

1743
来自专栏CSDN技术头条

缓存那些事

导语:在网络分层应用服务中,缓存的使用已比较普及,本文将结合作者实际工作经验总结,讲述在不同的场景下如何选择和使用适用的缓存框架,以达到提升服务质量,优化系统...

1867

扫码关注云+社区