zoukankan      html  css  js  c++  java
  • (五)多线程编程

    一、多线程简介
    1、操作系统下的并行执行机制
    (1)并行就是说多个任务同时被执行。并行分微观上的并行和宏观上的并行。
    (2)宏观上的并行就是从长时间段(相对于人来说)来看,多个任务是同时进行的;微观上的并行就是真的在并行执行。
    (3)操作系统要求实现宏观上的并行。宏观上的并行有2种情况:第一种是微观上的串行,第二种是微观上的并行。
    (4)理论来说,单核CPU本身只有一个核心,同时只能执行一条指令,这种CPU只能实现宏观上的并行,微观上一定是串行的。微观上的并行要求多核心CPU。多核CPU中的多个核心可以同时微观上执行多个指令,因此可以达到微观上的并行,从而提升宏观上的并行度。

    二、进程和线程的区别和联系
    (1)进程和线程是操作系统的两种不同软件技术,目的是实现宏观上的并行(通俗一点就是让多个程序同时在一个机器上运行,达到宏观上看起来并行执行的效果)。
    (2)进程和线程在实现并行效果的原理上不同。而且这个差异和操作系统有关。譬如windows中进程和线程差异比较大,在linux中进程和线程差异不大(linux中线程就是轻量级的进程)。
    (3)不管是多进程还是多线程,最终目标都是实现并行执行。

    三、多线程的优势
    (1)前些年多进程多一些,近些年多线程开始用得多。
    (2)现代操作系统设计时考虑到了多核心CPU的优化问题,保证了:多线程程序在运行的时候,操作系统会优先将多个线程放在多个核心中分别单独运行。所以说多核心CPU给多线程程序提供了完美的运行环境。所以在多核心CPU上使用多线程程序有极大的好处。

    多核CPU跑多线程程序,要注意多线程同步,在线程之间通信的时候用到一些共享变量,这些共享变量需要同步,多个线程不能同时访问同一个共享变量,访问之前要申请,获取访问权限,再没被占用的情况下可以获取到访问权限,然后再进行操作,这就是多线程同步和锁的问题。

  • 相关阅读:
    图解 PHP运行环境配置和开发环境的配置
    PHP学习笔记(2)语法和数据类型
    Jquery调用 新浪微博API 用户资料
    [转载]并行计算部分总结
    Qt QTreeWidget节点的添加+双击响应+删除详解
    C/C++中函数参数传递详解
    C语言预处理——宏定义
    cuda工程在VS中使用心得
    MPI用于矩阵乘积示例
    开到荼蘼花事了,永世相守孟婆桥
  • 原文地址:https://www.cnblogs.com/zhangshenghui/p/5903445.html
Copyright © 2011-2022 走看看