书栈网 · BookStack 本次搜索耗时 0.040 秒,为您找到 213981 个相关结果.
  • bthread or not

    同步或异步 异步或bthread brpc提供了异步接口 ,所以一个常见的问题是:我应该用异步接口还是bthread? 短回答:延时不高时你应该先用简单易懂的同步接口,不行的话用异步接口,只有在需要多核并行计算时才用bthread。 同步或异步 异步即用回调代替阻塞,有阻塞的地方就有回调。虽然在javascript这种语言中回调工作的很好,接受...
  • bthread or not

    bthread or not 同步或异步 异步或bthread bthread or not Where should I choose to use bthread? brpc提供了异步接口 ,所以一个常见的问题是:我应该用异步接口还是bthread? 短回答:延时不高时你应该先用简单易懂的同步接口,不行的话用异步接口,只有在需要多核并行计算...
  • Timer keeping

    在几点几分做某件事是RPC框架的基本需求,这件事比看上去难。 让我们先来看看系统提供了些什么: posix系统能以signal方式 告知timer触发,不过signal逼迫我们使用全局变量,写async-signal-safe 的函数,在面向用户的编程框架中,我们应当尽力避免使用signal。linux自2.6.27后能以fd方式 通知timer触发,这...
  • Timer keeping

    在几点几分做某件事是RPC框架的基本需求,这件事比看上去难。 让我们先来看看系统提供了些什么: posix系统能以signal方式 告知timer触发,不过signal逼迫我们使用全局变量,写async-signal-safe 的函数,在面向用户的编程框架中,我们应当尽力避免使用signal。linux自2.6.27后能以fd方式 通知timer触发,这...
  • 原子指令

    原子指令 Cacheline Memory fence wait-free & lock-free 原子指令 学习bRPC原子指令。 我们都知道多核编程常用锁避免多个线程在修改同一个数据时产生race condition 。当锁成为性能瓶颈时,我们又总想试着绕开它,而不可避免地接触了原子指令。但在实践中,用原子指令写出正确的代码是一件非常困难的...
  • 1.5 面向并发的内存模型

    4137 2019-02-27 《Go语言高级编程》
    1.5 面向并发的内存模型 1.5.1 Goroutine和系统线程 1.5.2 原子操作 1.5.3 顺序一致性内存模型 1.5.4 初始化顺序 1.5.5 Goroutine的创建 1.5.6 基于Channel的通信 1.5.7 不靠谱的同步 1.5 面向并发的内存模型 在早期,CPU都是以单核的形式顺序执行机器指令。Go语言的祖...
  • 并发、协程和信道

    并发、协程和信道 一、并发介绍 二. 协程和 go 关键字 三、信道 chan 四、锁实现并发安全 并发、协程和信道 Golang 语言提供了 go 关键字,以及名为 chan 的数据类型,以及一些标准库的并发锁等,我们将会简单介绍一下并发的一些概念,然后学习这些 Golang 特征知识。 一、并发介绍 我们写程序时,可能会读取一个...
  • 16.1. 使用线程同时地运行代码

    使用线程同时运行代码 使用 spawn 创建新线程 使用 join 等待所有线程结束 线程与 move 闭包 使用线程同时运行代码 ch16-01-threads.md commit 6b9eae8ce91dd0d94982795762d22077d372e90c 在大部分现代操作系统中,已执行程序的代码在一个 进程 ...
  • 概述

    异步操作概述 单线程模型 同步任务和异步任务 任务队列和事件循环 异步操作的模式 回调函数 事件监听 发布/订阅 异步操作的流程控制 串行执行 并行执行 并行与串行的结合 异步操作概述 单线程模型 单线程模型指的是,JavaScript 只在一个线程上运行。也就是说,JavaScript 同时只能执行一个任务,其他任务都必须...