C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程两种,分别对应于读和  ## 第6章:条件变量 ## 条件变量:等待被唤醒 • cv.wait(lck) 将会让当前线程陷入等待。 - 在其他线程中调用 cv.notify_one() 则会唤醒那个陷入等待的线程。 - 可以发现 std::condition_variable [Image](/uploads/documents/4/1/5/c/415c35d9cac8ae4bb4317bc7805d63cb/p62_1.jpg) ## 条件变量:等待某一条件成真 - 还可以额外指定一个参数,变成 cv.wait(lck, expr) 的形式,其中 expr 是个 lambda 表达式,只有其返回值为 true 时才会真正唤醒,否则继续等待。 awakening t1, since ready = true t1.join(); ## 条件变量:多个等待者 - cv.notify_one() 只会唤醒其中一个等待中的线程,而 cv.notify_all() 会唤醒全部。 - 这就是为什么 wait() 需要一个 unique_lock0 码力 | 79 页 | 14.11 MB | 2 年前3
微服务的设计原则与⽣态系统 - 王磊0 码力 | 62 页 | 6.65 MB | 2 年前3
06 PHP基本语法 — 条件、循环、函数 杨亮 《PHP语⾔程序设计》## PHP CHINA PHP基本语法 PHPCHINA! HAPPY PHPING PHPCHINA.COM —条件、循环、函数 杨亮 ## 程序的基本结构 程序 运算(+ - x / & | ! ..) 输入 逻辑(条件、循环、递归) 输出 辅助(变量、数组、函数) 小测验 用你熟悉的程序找出 1~1000中的所有质数 ## 我们直接看代码好了 '; }0 码力 | 25 页 | 1.30 MB | 2 年前3
IPC性能极致优化方案-RPAL落地实践uments/0/9/9/d/099dbb5037c4c50541f0ff9d02a06a91/p2_1.jpg) 方案诞生的背景 01 全进程地址空间共享与保护 02 用户态进程切换 03 高效的Go Event Poller 04 RPC框架Kitex集成 05 性能收益与业务展望 06 ## 第一部分 ## 方案诞生的背景 ## 方案诞生的背景 需要做到跨进程的虚拟地址空间共享,通过传递指针来传递一切数据。 基于以上问题,我们最终引入了 RPAL(Run Process As Library)方案,基于跨进程虚拟地址共享,复用 epoII 网络模型,实现了纯用户态的事件轮询和无拷贝的指针读写接口。 ## 第二部分 ## 全进程地址空间共享与保护 ## 全进程地址空间 The quick brown fox jumps over the lazy dog. Register),其长度为 32 bits,每 2-bit 对应页表中的一个 Protection Key,分别为 WD 位和 AD 位,用于控制所在域的内存访问权限。 ## 第三部分 ## 用户态进程切换 ## 用户态进程切换 User Stack Sender 传统线程切换 switch thread Receiver Kernel Stack Sender Receiver rpal线程切换:0 码力 | 39 页 | 2.98 MB | 2 年前3
The PHP Handbook
0 码力 | 97 页 | 8.78 MB | 2 年前3
1.2.3 Go 泛型设计一般情况,运行时开销忽略不计 需要运行时获取字典信息时,有性能损耗 增加了编译成本(额外的时间 + 二进制大小) ’ alt=‘OCR图片’/> Gcshape 判断gcshape是否相同的条件: 都是指针,则认定为*uint8 基础类型(underlying type)相同 type myInt int , type muInt = int int32 ,uint32 alt=‘OCR图片’/> 第三部分 Go泛型底层实现原理 ’ alt=‘OCR图片’/> 编译过程 ’ alt=‘OCR图片’/> 单态化(Monomorphization) 模版参数替换: func F[T any,U any](a T,b U) { return } // 单态化 F[int,string](1,"1") => F[go.shape.int_0 指针复用 F[*int,*string](nil,nil) => F[go.shape.*uint8_0, go.shape.*uint8_1] ’ alt=‘OCR图片’/> 单态化调用 package main func F[T any, U any](a T, b U) { return } func main() { F[int, string](10 码力 | 35 页 | 1.31 MB | 1 月前3
FISCO BCOS 3.0.0-rc2 中文文档支持证书颁发、撤销、更新 权限控制 支持细粒度权限控制 隐私保护 物理隔离 群组间数据隔离 隐私保护协议 支持群签名、环签名、同态加密 场景化隐私保护 机制 基于WeDPR支持隐匿支付、匿名投票、匿名竞拍、选择 性披露等场景 跨链协议 SPV 提供获取SPV证明的接口 跨链协议 基于WeCross支持同构、异构跨链 开发支持 合约开发工具 WeBASE-IDE,ChainIDE 开发建链工具 提供一键搭链脚本工具 务交易,满足跨链交易的原子性,对跨链进行治理,可支持多方协作管 理,避免单点风险。 场景式隐私保护解决方案WeDPR [https://fintech.webank.com/wedpr]:针对隐匿 支付、匿名投票、匿名竞拍和选择性披露等应用方案,提供即时可用场 景式隐私保护高效解决方案,助力各行业合法合规地探索数据相关业 务。 区块链数据治理组件解决方案 [https://data-doc.readthedocs.io/zh_CN/latest/]:稳 数据在远端存储,数据可以在更安全的隔离区存储,这在很多场景中非 常有意义; 分布式存储不仅支持Key-Value形式,还支持SQL方式,使得业务开发更 为简便; 世界状态的存储从原来的MPT存储结构转为分布式存储,避免了世界状 态急剧膨胀导致性能下降的问题; 优化了数据存储的结构,更节约存储空间。 同时,2.0版本仍然兼容1.0版本的本地存储模式。更多关于存储介绍,请参考 分布式存储操作手册 并行计算模型 2.0版本中新增了合0 码力 | 2569 页 | 166.06 MB | 2 年前3
Rust 程序设计语言 简体中文版 1.85.0fn main() { let t = true; let f: bool = false; // with explicit type annotation } 使用布尔值的主要场景是条件表达式,例如 if 表达式。在 “控制流”(“Control Flow”) 部分 将介绍 if 表达式在 Rust 中如何工作。 字符类型 Rust 的 char 类型是语言中最原始的字母类型。下面是一些声明 Rust 程序设计语言 简体中文版 控制流 根据条件是否为真来决定是否执行某些代码,以及根据条件是否为真来重复运行一段代码的能 力是大部分编程语言的基本组成部分。Rust 代码中最常见的用来控制执行流的结构是 if 表达 式和循环。 if 表达式 if 表达式允许根据条件执行不同的代码分支。你提供一个条件并表示 “如果条件满足,运行这 段代码;如果条件不满足,不运行这段代码。” 在 projects 表达式都以 if 关键字开头,其后跟一个条件。在这个例子中,条件检查变量 number 的值是否小于 5。在条件为 true 时希望执行的代码块位于紧跟条件之后的大括号中。 if 表达式中与条件关联的代码块有时被叫做 arms,就像第二章 “比较猜测的数字和秘密数字” 部分中讨论到的 match 表达式中的分支一样。 也可以包含一个可选的 else 表达式来提供一个在条件为 false 时应当执行的代码块,这里我0 码力 | 562 页 | 3.23 MB | 8 月前3
FISCO BCOS 2.8.0 中文文档支持证书颁发、撤销、更新 权限控制 支持细粒度权限控制 隐私保护 物理隔离 群组间数据隔离 隐私保护协议 支持群签名、环签名、同态加密 场景化隐私保护 机制 基于WeDPR支持隐匿支付、匿名投票、匿名竞拍、选择 性披露等场景 跨链协议 SPV 提供获取SPV证明的接口 跨链协议 基于WeCross支持同构、异构跨链 开发支持 合约开发工具 WeBASE-IDE,ChainIDE 开发建链工具 提供一键搭链脚本工具 务交易,满足跨链交易的原子性,对跨链进行治理,可支持多方协作管 理,避免单点风险。 场景式隐私保护解决方案WeDPR [https://fintech.webank.com/wedpr]:针对隐匿 支付、匿名投票、匿名竞拍和选择性披露等应用方案,提供即时可用场 景式隐私保护高效解决方案,助力各行业合法合规地探索数据相关业 务。 区块链数据治理组件解决方案 [https://data-doc.readthedocs.io/zh_CN/latest/]:稳 数据在远端存储,数据可以在更安全的隔离区存储,这在很多场景中非 常有意义; 分布式存储不仅支持Key-Value形式,还支持SQL方式,使得业务开发更 为简便; 世界状态的存储从原来的MPT存储结构转为分布式存储,避免了世界状 态急剧膨胀导致性能下降的问题; 优化了数据存储的结构,更节约存储空间。 同时,2.0版本仍然兼容1.0版本的本地存储模式。更多关于存储介绍,请参考 分布式存储操作手册 并行计算模型 2.0版本中新增了合0 码力 | 2534 页 | 212.43 MB | 2 年前3
FISCO BCOS 2.7.2 中文文档支持证书颁发、撤销、更新 权限控制 支持细粒度权限控制 隐私保护 物理隔离 群组间数据隔离 隐私保护协议 支持群签名、环签名、同态加密 场景化隐私保护 机制 基于WeDPR支持隐匿支付、匿名投票、匿名竞拍、选择 性披露等场景 跨链协议 SPV 提供获取SPV证明的接口 跨链协议 基于WeCross支持同构、异构跨链 开发支持 合约开发工具 WeBASE-IDE,ChainIDE 开发建链工具 提供一键搭链脚本工具 务交易,满足跨链交易的原子性,对跨链进行治理,可支持多方协作管 理,避免单点风险。 场景式隐私保护解决方案WeDPR [https://fintech.webank.com/wedpr]:针对隐匿 支付、匿名投票、匿名竞拍和选择性披露等应用方案,提供即时可用场 景式隐私保护高效解决方案,助力各行业合法合规地探索数据相关业 务。 区块链数据治理组件解决方案 [https://data-doc.readthedocs.io/zh_CN/latest/]:稳 数据在远端存储,数据可以在更安全的隔离区存储,这在很多场景中非 常有意义; 分布式存储不仅支持Key-Value形式,还支持SQL方式,使得业务开发更 为简便; 世界状态的存储从原来的MPT存储结构转为分布式存储,避免了世界状 态急剧膨胀导致性能下降的问题; 优化了数据存储的结构,更节约存储空间。 同时,2.0版本仍然兼容1.0版本的本地存储模式。更多关于存储介绍,请参考 分布式存储操作手册 并行计算模型 2.0版本中新增了合0 码力 | 2520 页 | 211.87 MB | 2 年前3
共 908 条
- 1
- 2
- 3
- 4
- 5
- 6
- 91













