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

  • 相关阅读:
    football statistics
    频繁模式挖掘 Apriori算法 FP-tree
    回首页---用通用底部栏,不用回退键,且多次点击,刷新首页
    对剪切板的失控异常的处理---多半的时间再处理剪切板的失控---冗余操作
    登陆
    搜狗输入法APP的2个剪切板内容获取入口
    实现对屏幕指定内容的操作
    定时删除clientmqueue
    局部优化与整体效果 新增时间>节省时间 权衡利弊
    实时系统的目标
  • 原文地址:https://www.cnblogs.com/zhangshenghui/p/5903445.html
Copyright © 2011-2022 走看看