感觉这一节超级棒,老师通过事务的例子来解释共享状态的调度很深刻。
我对老师的问题关于共享状态调度的核心解决并发冲突的思考:
一个job由多个task组成,一个job要么全都执行,要么全都不执行,就像老师说的理解成一个事务;
1.job执行执行的时候如果阻塞等待资源,我们可以将阻塞加上超时时间,超时后还不能获取到资源,当前job主动释放自己已经占有的资源,这可以叫做等待超时时间;
2.如果一个job占有了一些资源,正在执行,我们可以给当前job设置一个超时时间,如果job在超时时间内还没把资源执行完,自己主动释放占有的资源,回滚job的所有task,这可以理解成作业超时时间
3.多个job的多个task在抢资源的时候,我们可以设计一个公平和非公平的抢占队列
4.共享状态下的调度有一个特点是每个调度器都有全局的资源,这个可以这样改进一下:每个调度器的资源分为两部分组成,一部分独占,一部分由共享抢占获取,这样减少并发的程度;这让我想到了操作系统的内存模型,一个核心占用一部分固定内存,然后其它的内存是共享的,也就是可以抢占的
展开