任务类型
程序一般分为CPU密集型任务与IO密集型任务。
CPU密集型:一个程序任务大部分是计算类的,比如逻辑处理、数值比较和计算。特点是要进行大量的计算,消耗CPU资源。
CPU密集型任务虽然也可以用多任务执行,但是任务越多任务切换越频繁,CPU执行效率反而越低。
IO密集型:一个程序涉及到大量网络、磁盘等比较耗时的输入输出任务。特点是CPU消耗很小,任务的大部分时间都在等待IO操作完成。
对于IO密集型任务,任务越多CPU效率越高,但也不是无限的开启任务,导致任务切换消耗太大。常见的大部分程序都是IO密集型任务,比如web服务,数据库操作等。
服务模型
针对密集型任务,单个任务处理能力有限。使用多服务模型来处理实例。多进程、多线程、多协程