于非常前沿甚至激进的技术。
大部分人还在死磕多线程优化。
胡鹏的眼睛却亮了。
他是行家。
陈浩画的这个图,虽然简单,但逻辑闭环非常完美。
它从根本上避开了线程切换的开销。
“无锁队列……”
胡鹏喃喃自语。
“你是说用CAS指令原子操作来替代互斥锁?”
陈浩点头。
“是的。硬件级的原子操作,比操作系统级的锁快几个数量级。”
胡鹏沉默了片刻。
他看着陈浩,眼神复杂。
“说起来容易,做起来难。”胡鹏指着屏幕。
“这套系统的底层代码有十几万行,重构I/O模型等于换心脏。
离验收只剩一个月,谁敢动?”
“不用动全身。”
陈浩把马克笔扔在桌上,走到那个操作电脑的博士生身后,拍了拍他的肩膀。
“师兄,麻烦让个座。”
那个博士生愣住了,下意识地看向胡鹏。
胡鹏深吸了一口烟,把烟蒂狠狠按灭在烟灰缸里。
“让他试!”
代码在其他的电脑都有备份,出问题也不影响。
博士生站起来,让出了位置。
陈浩坐下,双手放在键盘上。
那是一把老式的机械键盘,键程很长。
他活动了一下手指,调出了底层的通讯模块代码:
NetworkDispatcher.cpp。
陈浩的眼神瞬间变得专注。
他没有大改业务逻辑,而是直接删掉了原本臃肿的线程池管理类。
键盘敲击声开始在实验室里回荡。
哒哒哒,哒哒哒。
陈浩直接引入了sys/select.h库。
他开始手写一个简易的Reactor事件分发器。
fd_setmaster_set;
FD_ZERO(&master_set);
select(max_fd+1,&read_fds,NULL,NULL,&timeout);
一行行代码在黑色的屏幕上流淌。
周围的博士生慢慢围了上来。
一开始他们还带着怀疑,但随着代码行数的增加,他们的表情变了。
陈浩的代码风格极其老练。
变量命名规范,注释清晰,逻辑结构紧凑得像教科