经常看代码中出现 drain 这个词,比如 buffer_drain,不知道这个是啥意思

2022-07-06 20:51:24 +08:00
 jdz

求指教

2866 次点击
所在节点    程序员
14 条回复
GopherDaily
2022-07-06 20:59:17 +08:00
状态流转,不一定准确,你可以看看具体的代码
jdz
2022-07-06 21:03:46 +08:00
@GopherDaily 比如 libev 中的 buffer_dtain
https://zhuanlan.zhihu.com/p/163282654
yankebupt
2022-07-06 21:04:05 +08:00
可能用的是 drain 这个词的名词形式,即排水或(指代),而不是动词形式 吸收。
yankebupt
2022-07-06 21:05:16 +08:00
看了下 2 楼,可能还真是动词形式。。。- -|
kidlj
2022-07-06 21:07:09 +08:00
耗尽的意思。比如 nginx -s reload 会开一个新线程接受新连接,待老线程把当前连接都处理完了( drain ),老线程再退出。
raysonx
2022-07-06 21:24:22 +08:00
drain 一般指排空、清空,一个例子是 kubernetes 有一个`kubectl drain`命令可以清空 node 上的所有 pod 。
AllenHua
2022-07-06 22:56:17 +08:00
drain 我的理解是消耗,buffer drain 可能指的是 buffer 缓冲区的不断占用,不断消耗、耗尽。

看英文媒体写的笔记本、智能手机测评,能看到 how to drain your laptop's battery faster? drain the mobile phone's battery manually 等等的说法
Jooooooooo
2022-07-06 22:57:29 +08:00
朴素的理解就是消耗的意思.
cpstar
2022-07-06 23:15:32 +08:00
虽然愿意是消耗、吸收,但更像是清理、清空、完全处置,偏重于结果,结果就是一干二净。
Samuelcc
2022-07-06 23:16:09 +08:00
抽干的意思
billwsy
2022-07-06 23:18:56 +08:00
想象下洗脸的那个水盆 里面装满了水 drain 一下就是放水

- buffer_drain 就是从 buffer 这个水盆中放出去 len 这么多水
- drain battery 就是从 battery 这个水盆中放水出来,manually 放或是放 faster
tramm
2022-07-07 09:22:33 +08:00
举个例子: Google Guava 库中 Queues 类有个方法 drain -- 弹出队列中的元素
zjj19950716
2022-07-07 10:02:03 +08:00
排干,105 个元素,一次处理 10 个,10 轮下来还有 5 个,处理最后这 5 个就是 drain 。
yolee599
2022-07-07 12:28:41 +08:00
MOS 管的漏极

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/864521

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX