包含标签 select 中的文章

Go select多路复用, 实现超时机制

1 Preface 我们在 Linux 服务端编程的时候,select/epoll 可以监控多个fd, 并且可以指定超时时间。 那么我们在Go 里面也有select 关键字,那么怎么实现超时机制呢? 在 select 中加入一个 timer channel case rc2 := <-time.After(d): After等待持续时间过去,然后在返回的通道上发送当前时间。 它等效于NewTimer(d)。 在计时器触发之前,底层的计时器不会由垃圾收集器恢复。 如果需要提高效率,请改用NewTimer,如果不再需要计时器,请调用Timer.Stop。 完整代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 // 采用 select 实现超时……

阅读全文

五种 IO 模型

1 Preface 同步 (synchronous IO) 和异步 (asynchronous) IO,阻塞 (blocking) IO和非阻塞(non-blocking) IO分别是什么,到底有什么区别? 这个问题不同的人给出的答案可能不同。为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不相同。 我们这里讨论的背景是Linux环境下的network IO, 本文参考 Richard Stevens 2003 年的传世之作 1 ,如果英文够好的话,推荐直接阅读。Stevens的文风是有名的深入浅出,所以不用担心看不懂。 2 五种 I/O 模型 blocking I/O nonblocking I/O I/O multiplexing (select and poll) signal driven I/O (SIGIO) asynchronous I/O (the POSIX aio_functions) 再说一下IO发生时涉及的对象和步骤。 对于一个net……

阅读全文

最近文章

分类

友情链接

标签

-Wall(1) 2017(1) 2023(1) about(1) AC自动机(1) algorithm(2) atomic(1) BigData(1) busy(1) C++11(3) cache(3) chrome(1) cluster(1) CMake(1) cmd(1) Code Review(1) communication(1) core(1) CPA(1) CPC(1) CPM(2) CPP(15) CPS(1) CPT(1) CPU(1) CR(1) CS(4) Diary(3) Docker(1) DP(1) duck-type(1) echarts(1) epoll(1) etcd(1) Eureka(1) event(1) eventfd(1) Feeling(1) future(2) Gerrit(1) git(6) go(3) go-cmp(1) Golang(8) hardware(1) Hundsun(2) intersection(1) iPhone(1) Java(2) js(1) kafka(2) lambda(1) Languages(2) LeetCode(3) libuv(1) Life(12) LinkList(1) Linux(2) LogReplay(1) lua(3) MacOS(1) MySQL(1) mysqldump(1) narrow cast(1) nullptr(1) OKR(1) oneof(1) OpenTelemetry(1) owners(1) pkg(2) plan(1) plugin(2) plugins(1) poll(1) postman(1) promise(1) proto3(1) Protobuf(1) rb-tree(1) Reactive(1) ready_future(1) rebase(1) recommend(2) recursive(1) Redis(1) reflection(3) Registry Center(1) Release(1) resume(1) rpm(1) seastar(4) select(2) set(1) shared_ptr(1) SIGABRT(1) Simulate Location(1) sql(2) std::thread(1) syscall(1) tcp(1) timeout(1) TodoList(1) Tools(3) tracing(1) Travel(1) unique_ptr(1) unwound stack(1) weak_ptr(1) Web(2) Wireshark(4) Work(9) zeromq(2) zookeeper(2) zsh(1) 个人旅游(1) 企微机器人(1) 优点(1) 全麻(1) 动态规划(1) 在线广告(1) 多模匹配(1) 工作总结(1) 广告(1) 开源工具(1) 开源库(4) 总结(2) 扔鸡蛋问题(1) 文本消息指令(1) 智齿(1) 流量录制回放(1) 用户标签(1) 缺点(1) 群收款(1) 背包问题(1) 读书笔记(8) 香港签注(1) 高可用(2) 鼻炎(1)

其它