zoukankan      html  css  js  c++  java
  • 进程&线程 同步异步&阻塞非阻塞

    2015-08-19 15:23:38 周三

    线程 线程安全

    如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码

    线程安全问题都是由全局变量及静态变量引起的

    若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全

    线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用

    线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据

    一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并行多个线程,每条线程并行执行不同的任务

    线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文

    join();可以用来邀请其他线程先执行

    yield();告诉系统"把自己的CPU时间让掉,让其他线程或者自己运行"

    同步异步&阻塞非阻塞

    1. 同步,就是我调用一个功能,该功能没有结束前,我死等结果。
    2. 异步,就是我调用一个功能,不需要知道该功能结果,该功能有结果后通知我(回调通知)
    3. 阻塞,      就是调用我(函数),我(函数)没有接收完数据或者没有得到结果之前,我不会返回。
    4. 非阻塞,  就是调用我(函数),我(函数)立即返回,通过select通知调用者

     

    同步IO和异步IO的区别就在于:数据拷贝的时候进程是否阻塞!

    阻塞IO和非阻塞IO的区别就在于:应用程序的调用是否立即返回!

    多路复用:

    所谓I/O多路复用机制,就是说通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作

  • 相关阅读:
    spider
    python 2.X
    django 创建项目
    NameError: name 'pip' is not defined
    异常捕获
    @property
    node-Telnet
    ES6-模块化
    高级排序算法之双路快速排序
    高级排序算法之快速排序
  • 原文地址:https://www.cnblogs.com/iLoveMyD/p/4742398.html
Copyright © 2011-2022 走看看