U盘PE| w764位旗舰版下载 | U盘装win7系统 | U盘启动 |win7pe | win10下载 |加入收藏土豆PE官网U盘PE,U盘装win7系统,win7pe,U盘启动,U盘装系统,w764位旗舰版下载站!
当前位置:主页 > 帮助中心 > 常见问题解答 >

利用资源API和实例同步多线编程

来源:http://www.tudoupe.com时间:2021-12-05

目录

      • 1个书写基本原理和典型困难
        • 一.1 主线终止。
        • 1.2 螺线撞车,导致流程退出?
      • 2 线程的基本操作
        • 2.1 创建线程
        • 二.2. 获取线索识别码
        • 2.1 等待线索得出结论
      • 4 矫形可变原子操作
      • Linux 中的 5 行同步对象
        • 5.1 对等林努
        • 五. 两个Linux系统五号信号
        • 5.3 Linux情况变量
        • 5.4 Linux读写锁
      • Windows 中的 6 串列同步对象
      • 线索同步化 物体 7 C+11/14/17
      • 8 经验总结
        • 8.1. 减少使用的锁数
        • 八.2 锁的粒子大小缩小了
      • 9 线程局部存储
      • 10 环队列和 IMO 多重xing 代码示例

导言:多线编程一直是服务器编程的重点,在前一次访谈的后端开发中,还有几个多线编程问题,换句话说,必须记录下来,本文主要列出操作系统的原始内容。Linux apiC++11/14/17Windows相关api 这里没什么可说的,当然,见C++API参考。

这个职位旨在审查我的知识以及知识的进步,过去曾发表过太多的线性方案拟订文章:C/C++多线方案拟订专栏,用于应付一波潮流。

GitHub 多线阅读文件的示例代码仓库: GitHub 代码仓库

这就是IO多重电路发挥作用的地方。select模型,epoll 在 ET 模式下的 Poll 的无保留服务端实例 。

希望我们都能够满足我们的需求,努力向前迈进,共同发展,创造伟大,获得我们的愿望,保护我们拥有的东西。

1个书写基本原理和典型困难

一.1 主线终止。

Windows当一个过程包含数条线索时,如果主线索执行结束,所需的代码(工作线索)没有及时执行,将撤回。

Linux如果主线完成,工作线通常不受影响,并且继续运行,但这一过程随后是为僵尸过程设计的(应当避免的)。

1.2 螺线撞车,导致流程退出?

有可能

2 线程的基本操作

2.1 创建线程

Linux 中的线索生成

二.2. 获取线索识别码

2.1 等待线索得出结论

在实际项目开发中,我们常常需要一条线等待另一条线完成这项工作。

pthread_join等待线索的终止并获得其返回值

4 矫形可变原子操作

线索同步技术, 允许多个线条同时访问同一资源 。

Linux 中的 5 行同步对象

5.1 对等林努

通过防止几条线索同时执行代码的同一部分来保护资源。

创建一个互斥体

初始化一个互斥体

销毁一个互斥体

遇有易燃锁定和拆锁操作的情况

对于pthread_mutexattr_t,如下

设置和获取属性类型

属性类型

  • PTHREAD_MUTEX_NORMAL正常锁。 当线索锁定在正态锁上时, 对象的默认属性会被其他线索堵塞 。pthread_mutex_lock在对方的圈子解开锁之前 很有帮助
  • PTHREAD_MUTEX_ERRORCHECK如果使用线索, 将会有一个错误锁定 。pthread_mutex_lock如果一个物体被锁定,它就会再次被锁定。pthread_mutex_lock会返回EDEADLK
  • PTHREAD_MUTEX_RECURSIVE:再次锁定。此属性允许相同的线条重现,并按每个成功调用锁定它所拥有的折射。pthread_mutex_lock当对象的密钥引用数增长时 。1,相反,每成功调用pthread_mutex_unlock锁定计数随后将减少。1

五. 两个Linux系统五号信号

5.3 Linux情况变量

条件变数创造和消灭

等待条件变量唤醒

因调用pthread_cond_wait必须等待的线索是:API唤醒

5.4 Linux读写锁

  1. 读写锁定应用程序 : 在许多情况下, 线索只读取共享变量的值, 只在少数情况下读取共享变量的值 。 在这样的情况下, 不需要同步请求, 并且它们之间的同步访问是安全的 。

  2. 读写锁的应用方法

声明一个读写锁

三个读锁的系统API接口

三个写锁的系统API接口

  1. 读写锁的属性

pref枚举类型

初始化属性

Windows 中的 6 串列同步对象

不做概述

线索同步化 物体 7 C+11/14/17

C/C++通过直接使用操作系统使许多资源同步化API限制极少,但很难使用,同一守则不相容。WindowsLinux两个平台

互斥量 作用
mutex 基本的互斥量
timed_mutex 有超时机制的互斥量
recursive_mutex 可重入的互斥量
recursive_timed_mutex 结合timed_mutexrecursive_mutex特点的互斥量
shared_timed_mutex 共享暴露的超时系统
shared_mutex 共享的互斥量

为了避免死锁,C++有四个同侪管制系统可供使用。

互斥量管理 作用
lock_guard 基于影响领域的反应管理
unique_lock 同伴管理更适应性强
shared_lock 共享的互斥量管理
scoped_lock 为了避免彼此被关起来, 使用反应管理。

折射的生命周期必须与管理折射的功能的生命周期相吻合。

8 经验总结

8.1. 减少使用的锁数

锁定代码经常遭受以下性能损失:

  • 锁着和锁着 都要付出代价
  • 关键地区代码不能同时执行。
  • 上下文切换过多

八.2 锁的粒子大小缩小了

锁定尺寸的减少是指一个关键区域代码范围,可以减少锁定的影响;关键区域的代码范围越窄,进入关键区域的线性队列的可能性就越小。

原代码

第4/5/8行不必有关键区域代码,建议离开敏感区域。

9 线程局部存储

这些数据有时是必要的,以便每一线条在一个有许多线条的进程中独立运作。C++每个示例对象都有其自身的属性, 称为线索本地存储 (TLS) 。

10 环队列和 IMO 多重xing 代码示例

我将密码上传到GitHub, 我可以从我的个人仓库里拿到它; 链接在介绍的底部。

在此情况下使用环形队列。

它是对文件内容的多线读取 。C代码,我设置时间为sleep(1)如果您想快速阅读, 可以取消 。test.c中的这一行注释

运行效果

请添加图片描述

Copyright © 2012-2014 Www.tudoupe.Com. 土豆启动 版权所有 意见建议:tdsky@tudoupe.com

土豆系统,土豆PE,win7系统下载,win7 64位旗舰版下载,u盘启动,u盘装系统,win10下载,win10正式版下载,win10 RTM正式版下载,win8下载,电脑蓝屏,IE11修复,网络受限,4K对齐,双系统,隐藏分区,系统安装不了,U盘装系统,笔记本装系统,台式机装系统,diskgenius运用,GHSOT装系统,U盘修复,U盘技巧,U盘速度,U盘不能格式化,U盘复制发生错误,U盘加密,U盘选购,开机黑屏,蓝屏,进不了系统,上不了网,打不开程序,点击无反应,系统设置,PE个性化,PE添加网络,PE维护系统

点击这里给我发消息