IO密集型线程 CPU密集型线程

关于这两种类型的线程本人认为是本基础的东西,不知道的请baidu.


CPU密集型线程的作用是进行无阻塞的逻辑运算的线程。比如:RPG游戏中的游戏逻辑服务器(也叫地图服务器)里面的主逻辑线程,这个主逻辑线程需要进行大量的无阻塞的逻辑处理。当被操作系统内核调度的时候,这个线程就在给定的CPU执行时间内进行无阻塞的操作。如果这个游戏逻辑服务器还创建更多的线程来进行逻辑操作的话,这样的行为是得不尝失的。因为,本进程的线程越多,而本进程获取的CPU执行时间又是固定的,导致了进程内每个线程的执行时间很短。所以,像游戏逻辑服务器中的线程应该属于CPU密集型线程。所以线程不宜过多。


而IO密集型线程是针对于IO操作比CPU计算操作占用更多的CPU时间来说的。比如:数据库服务器,这个服务器中的线程的职责就是进行阻塞的IO操作。当线程因为IO阻塞而进入阻塞状态后,该线程的调度被操作系统内核立即停止,不再占用CPU时间片段,而其他IO线程能立即被操作系统内核调度,等IO阻塞操作完成后,原来阻塞状态的线程重新变成就绪状态,而可以被操作系统调度。所以,像数据库服务器中的IO密集型线程来说,线程的数量就应该适量的多点。



你可能感兴趣的:(操作系统,操作系统)