zoukankan      html  css  js  c++  java
  • 多线程下的并发理解

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

    并发:

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

    并行与串行:

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

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

  • 相关阅读:
    KingPaper初探Java之初学者编码遇到的问题
    KingPaper初探redis之redis数据类型解析(String类型)
    KingPaper初探Java之面向对象对象的声名和实例化(一)
    KingPaper初探百度应用之百度地图API
    MYSQL之用户授权
    nginx入门到精通目录
    nginx入门篇负载均衡策略
    nginx入门篇功能特性
    开博啦
    ubuntu14.04下pycharm的安装及破解
  • 原文地址:https://www.cnblogs.com/burningTheStar/p/7084439.html
Copyright © 2011-2022 走看看