【技术实现步骤摘要】
本专利技术涉及一种全新的异步调用模型,以取代或与现有异步调用模型协同工作以实现服务器软件的最大吞吐量和并发处理能力,并使用lambda表达式和过程化理念以达到更简便的开发流程和更高的代码可维护性。
技术介绍
常见操作系统的默认配置会更多的考虑线程调度的均衡性,即不会让一个线程过多的使用处理器资源。所以常见的线程调度算法的时间复杂度都在O(log(n)),其中n为整个操作系统中线程的数量。但是这种调度方式往往带来负面效果。1.过多的处理器资源被使用在了调度线程本身,根据测试结果,1000个线程反复在等待和执行状态间切换可能会导致调度线程的操作占用超过40%的处理器资源。2.真正需要进行处理器运算的线程可能无法得到资源,从而导致饥饿情况的发生。3.对于服务器软件,调度的公平性往往不及吞吐量和平均响应时间关键,复杂的调度算法对于服务器软件反倒是不利的。为了解决这种问题,并实现最大的吞吐量和并发处理能力,通常的开发指南上会推荐使用异步模型。即在异步操作出现时,施放当前线程供别的任务使用。异步调用往往需要保留状态,开发和调试难度要远大于同步模式。并且因为包括锁在内的同步信号量本身仍然是同步的,所以除非进行非常精妙的调整,即便使用异步模型往往仍并不能够完全利用处理器资源。最大化处理器利用率的前提因为前文所述的线程调度占用处理器资源的情况,所以最大化处理器利用率的方式是依照处理器核心数分配线程。即每个处理器核心只分配一个线程,并且如果可能尽量不进行线程的调度,比如设置处理器和线程的亲和度等。
技术实现思路
面向过程而非线程的开发概念虽然并没有人这么指出,但是传统的软件开发 ...
【技术保护点】
过程化程序设计思想,即将一段逻辑分为若干个处理器、内存操作的步骤和IO、锁、信号量等的等待的交替操作。
【技术特征摘要】
1.过程化程序设计思想,即将一段逻辑分为若干个处理器、内存操作的步骤和IO、锁、信号量等的等待的交替操作。2.及基于此种设计思想的面向过程的锁和信号量的设计。3.使用...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。