Java语言怎么用字符填充到屏幕的右下角,形成一个独立的窗口,输出各种信息,而别的区域则不输出程序?
【相关推荐】
目前的协程框架一般都是设计成 1:N 模式。
所谓 1:N 就是一个线程作为一个容器里面放置多个协程。
那么谁来适时的切换这些协程?答案是有协程自己主动让出CPU,
也就是每个协程池里面有一个调度器,这个调度器是被动调度的。
意思就是他不会主动调度。
而且当一个协程发现自己执行不下去了(比如异步等待网络的数据回来,但是当前还没有数据到),
这个时候就可以由这个协程通知调度器,
这个时候执行到调度器的代码,调度器根据事先设计好的调度算法找到当前最需要CPU的协程。
切换这个协程的CPU上下文把CPU的运行权交个这个协程,直到这个协程出现执行不下去需要等等的情况,
或者它调用主动让出CPU的API之类,触发下一次调度。对的没错就是类似于 领导人模式那么这个实现有没有问题?
其实是有问题的,假设这个线程中有一个协程是CPU密集型的他没有IO操作,也就是自己不会主动触发调度器调度的过程,
那么就会出现其他协程得不到执行的情况,所以这种情况下需要程序员自己避免。