背景
两天前的一个工作下午,我打开酷狗音乐,点开敲代码专用歌单,照往常一样边敲代码边听音乐,这应该是一个程序员必备的日常。就这样持续了一两个小时~~,突然我觉得我写代码的效率降低了,因为我喜欢看歌词,而看歌词就导致我暂时停顿敲击代码,从而有效时间和总时长差距拉大;于是我有意识地将酷狗音乐关闭,就这样又持续敲了一两个小时地代码,我又发现,我的有效编码时间和总时间还是差距很大,因为什么呢?
我是前后端都干。这天我主要是在写前端的代码,即使前端也是采用热编译,但修改了文件后自动编译的时间大概几十秒至一分钟的样子,等的有点焦急呀,于是拿起旁边的手机开始刷起来了;就这样不知不觉大概过了几分钟—十几分钟,我觉醒,项目运行好了,put down my cell phone,我第一件想到的就是:项目早就运行好了,因为等待焦虑的时间,反而耽误了更多的时间。
于是我的脑海就冒出了一个有趣的想法。。。
背景介绍了这么长,就是为了给我下面要说的铺垫,并且想告诉大家:有想法就去实现它
用代码给大脑减少一个工作线程,准确的来说是同一时刻减少工作线程的数量。那么如何减少呢?
场景:边敲代码边听音乐
从场景可以看出我们的大脑有两个工作线程,主工作线程(A)是敲代码,可有可无的工作线程(B)是听音乐,大脑是一个cpu,线程A和线程B争抢cpu,当执行线程B时,线程A处于等待状态,这就导致了主线程A无法高效的执行,而我们期待的是主线程A高效的运行,又不能停止线程B工作(原因请看背景介绍,停止线程B导致工作效率低下)那么如何在不停止线程B工作的前提下让线程A高效的运行?
我用周六的时间写了一个python脚本,脚本一共85行代码,用来监听鼠标和键盘事件,当我移动了鼠标或者点击了键盘,就停止正在播放的酷狗音乐,当我10秒钟或者更长时间(可手动调整时间长短)没有移动鼠标或者点击键盘就继续播放酷狗音乐。
解放了双手(写代码时手动把音乐暂停)也解放了大脑,让线程A和线程B并行运行,不存在争抢cpu。当我们处于等待代码编译或者其他场景时,音乐会自动播放。
脚本中用到了pyHook,PyHook是一个基于Python的“钩子”库,主要用于监听当前电脑上鼠标和键盘的事件。这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在Windows平台,所以PyHook也只能运行在Windows平台。
项目上传到了gitHub,项目地址:
https://github.com/griabcrh/kugouAutoControl
使用手册都在github上,代码也写上了注释,就几十行代码很简单,喜欢的话就点个再看,分享朋友圈是对我最大的支持。
- End -
如果你喜欢本文,
请长按二维码关注