设为首页 加入收藏

TOP

进程和线程(三)
2023-07-23 13:29:41 】 浏览:54
Tags:程和线
果调用某个函数(如read函数进行文件读取),没有相应的结果就一直等待,直到结果出现(直到读缓冲区有内容)
  • 非阻塞模式就是调用某个函数(如read函数读取缓冲区内容),如果缓冲区为空,就立即返回,不会等待
  • epoll的水平模式的边缘模式

    • 水平模式(LT),只要文件描述符关联的读缓冲区(和写缓冲区)有数据可读(可写),就一直发出读(写)信号,支持阻塞和非阻塞
    • 边缘模式(ET),文件描述符关联的读(写)缓冲区有数据到来(可写),就发出读(写)的信号,但是只发出一次,之后就不再发出,支持阻塞和非阻塞

    线程同步,异步

    • 同步,意思就是在发出功能调用的时候,必须等待这个结果,才能执行下一步的操作

    • 异步,和同步相对,在发出功能调用的时候,不需要等待调用结果,可以继续往下执行,该功能的调用结果会通过状态,通知的回调告诉调用者

    线程安全

    • 多线程在并行执行并且访问共享数据的时候,如果每次都能得到确定的结果,那么就是线程安全的,即每次得到的结果和线程执行的顺序无关。

    • 多线程对全局变量,静态变量,堆区数据进行操作的时候,一般来说的不安全的

    • 产生线程不安全的原因,是因为线程对代码执行的过程中,并不是原子操作,有线程的切换

    • 保证线程安全策略:用mutex(互斥锁),用原子操作

    • vector保证线程安全:1.用mutex(互斥锁) 2. 固定vector的大小

    首页 上一页 1 2 3 下一页 尾页 3/3/3
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    上一篇基于容器的方式做一个apache编译.. 下一篇基于容器部署一个web站点

    最新文章

    热门文章

    Hot 文章

    Python

    C 语言

    C++基础

    大数据基础

    linux编程基础

    C/C++面试题目