在使用`Go`开发过程中,我们可能会经常使用定时器功能实现一些事情,对于简单的一些场景,我们可以借助`time.sleep`的方式,但是实际上这阻塞用法,会长时间占用`CPU`,当然我们也可以使用协程的方式避免主协程阻塞,然而如果我们还想做细粒度的控制,例如如果解决相邻两次任务时间重叠的问题,我们可能要花时间手动写一些编排任务列表控制的逻辑,实际上我们可以借助`robfig/cron`库,实现我们的功能。 ...
在开始之前,我们要明白互斥和同步是不同的概念,简单来说,互斥就是同一时间,某个资源只能运行一个访问者访问;同步指的是某些操作在时间上具有一定顺序,例如A操作必须在B操作之后,在很多时候,同步需要借助互斥。 ...
总体要求:实现一个小小的`shell`程序,涉及进程调度,信号处理,并发处理的知识,需要掌握教材第8章。 话不多说,打开电脑,带上键盘,开启实验! ...