专栏名称: 码农翻身
工作15年的前IBM架构师分享好玩有趣的编程知识和职场的经验教训, 不容错过。
目录
相关文章推荐
稀土掘金技术社区  ·  用dayjs解析时间戳,我被提了bug ·  2 天前  
OSC开源社区  ·  苹果开源编程语言Swift官网全新改版 ·  4 天前  
蚂蚁技术AntTech  ·  “切面融合智能在威胁检测的应用”获评BCS2 ... ·  3 天前  
51好读  ›  专栏  ›  码农翻身

Java IO 的自述

码农翻身  · 公众号  · 程序员  · 2017-03-03 17:14

正文

请到「今天看啥」查看全文



我说: “现在已经这么优雅漂亮了, 你们还要改? 小心把它改丑了!”


“不是的, 我此次的目的主要是增强API,  你想想,你的接口有什么问题没有?”


我说:“除了有人说我过度设计之外,好像没什么呀”


“你不知道, 问题都反映到上层部门去了, 其中有个重要的问题就是阻塞的问题”


这个我知道, 比如我去读取文件中的一行数据:

当一个线程在执行这段代码, 遇到readLine()方法的时候, 需要等待数据从硬盘进入内存, 这个线程就会被阻塞,   当然我觉得这也没啥, 很正常啊, 大家不都是这么编程的吗?


可是眼镜说: “不, 有很多人反映了这个问题, 大家想把它改成非阻塞的, 也就是说调用了readLine()方法以后,立刻就返回, 线程就可以干别的事情去了。”


“为什么要去干别的事情? 这个线程不就是为了读数据吗?   好,就如你所说, 现在变成了非阻塞的, 调用了readLine()以后, 线程可以执行后面的代码了, 那这个线程岂不还得做个轮询操作,看看数据是不是已经读好了?”

"这样一来,代码多丑陋啊, 不符合我一贯的美学原则, 还不如我原来的阻塞方式呢"    我觉得眼镜的要求不可思议。








请到「今天看啥」查看全文