您当前的位置: 首页 >  ar

令狐掌门

暂无认证

  • 1浏览

    0关注

    513博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

absl教程(五):Synchronization library

令狐掌门 发布时间:2021-09-21 15:53:54 ,浏览量:1

同步库包括用于跨不同线程管理任务的抽象和原语。该库包含以下头文件:

  • mutex.h 提供用于管理资源锁的原语。互斥锁是这个库中最重要的原语,也是大多数并发实用程序的构建块。
  • notification.h 提供一种简单的机制来通知线程事件。
  • barrier.hblocking_counter.h 为累积事件提供同步抽象。

Abseilbase库还包括许多与并发相关的头文件:

  • base/thread_annotations.h 提供用于记录多线程代码的锁定策略的宏,并为滥用此类锁定提供警告和错误。
  • base/call_once.h 提供一个 Abseil 版本,std::call_once()用于在所有线程中只调用一次可调用对象。

本文档将涵盖上述所有内容。

同步概述

在顺序(即单线程)系统中,我们通常认为事件以特定的总顺序发生:对于任何操作 A 和 B,要么 A 发生在 B 之前,要么 B 发生在 A 之前。在并发系统中,这不再是情况:对于某些操作对,可能无法说哪个更早发生(即事件只是部分排序的),在这种情况下,我们说它们同时发生。请注意,此定义与它们是否“实际上”同时发生无关,而仅与我们是否可以保证它们不会发生有关。

如果在多线程环境中没有正确使用(或设计)并发操作可能会发生冲突,从而导致以下问题࿱

关注
打赏
1652240117
查看更多评论
立即登录/注册

微信扫码登录

0.0415s