进程线程
- 进程
- - 线程
- 多进程 和 多线程
- 两者都是多任务的实现方式,通常采用Master-Worker模式
- 相对应的单任务模型:又叫批处理任务模型,顺序依次执行所有任务;
- Master通常负责分配任务,Worker负责执行任务
- 所以Master通常1个,Worker多个
- 多进程:
- 优点:稳定性高,一个子进程奔溃了,不会影响主进程和其他子进程(Master主进程宕掉的概率低,因为只负责分配任务),著名的Apache最早就是采用多进程模式
- 缺点:
- 创建进程的代价大,Linux下用fork调用还行,但是windows下创建进程开销很大;
- 操作系统能够同时运行的进程数也是有限的,在内存和CPU的限制下,如果有若干个进程同时运行,操作系统连调度都会成问题。
- 多线程:
- 优点:通常比多进程快一点;
- 缺点:任何一个线程挂掉,都会直接导致整个进程奔溃,因为所有线程共享进程的内存。
- windows下,如果某个线程出现了问题,会弹出“该程序执行了非法操作,即将结束”,其实往往是某个线程出现了问题,但是操作系统会强制结束整个进程。
- windows下,多线程的效率比多进程的效率要高,所以微软的IIS服务器默认采用多线程模式,所以存在稳定性问题,不如Apache。为了缓解,就出现了多线程+多进程的混合模式。
- 线程切换:
+
- 两者都是多任务的实现方式,通常采用Master-Worker模式
- 计算密集型 和 IO密集型
- 计算密集型:
- 要进行大量的计算,消耗CPU资源,比如计算圆周率、对视频进行高清解码等等,全靠CPU的运算能力。这种计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的核心数。
- 对于计算密集型任务,最好用C语言编写。
- IO密集型:
- 涉及到网络、磁盘IO的任务都是IO密集型任务,这类任务的特点是CPU消耗很少,任务的大部分时间都在等待IO操作完成(因为IO的速度远远低于CPU和内存的速度)。对于IO密集型任务,任务越多,CPU效率越高,但也有一个限度。常见的大部分任务都是IO密集型任务,比如Web应用。
- IO密集型任务执行期间,99%的时间都花在IO上,花在CPU上的时间很少,因此,用运行速度极快的C语言替换用Python这样运行速度极低的脚本语言,完全无法提升运行效率。对于IO密集型任务,最合适的语言就是开发效率最高(代码量最少)的语言,脚本语言是首选,C语言最差。
- 异步IO:
- 事件驱动模型!
- 考虑到CPU和IO之间巨大的速度差异,一个任务在执行的过程中大部分时间都在等待IO操作,单进程单线程模型会导致别的任务无法并行执行,因此,我们才需要多进程模型或者多线程模型来支持多任务并发执行。
- 现代操作系统对IO操作已经做了巨大的改进,最大的特点就是支持异步IO。如果充分利用操作系统提供的异步IO支持,就可以用单进程单线程模型来执行多任务,这种全新的模型称为事件驱动模型,Nginx就是支持异步IO的Web服务器,它在单核CPU上采用单进程模型就可以高效地支持多任务。在多核CPU上,可以运行多个进程(数量与CPU核心数相同),充分利用多核CPU。由于系统总的进程数量十分有限,因此操作系统调度非常高效。用异步IO编程模型来实现多任务是一个主要的趋势。
- 计算密集型:
SDN、CDN
- SDN
- 软件定义网络
- 使用软件来调度和管理网络,改变传统的网络层和数据链路层网络设备需要管理员配置之后传递数据的工作模式;
- 提出将管理系统,也就是控制层从各个设备中抽取出来,通过软件统一地进行调度和控制,而网络设备只是负责数据的通信工作。
- 传统通讯网络:
- 软件硬件结合,比如华为中兴卖通信设备,同时有硬件和软件。
- 网络流量增多:
- 运营商:不受益于流量的增长,增产不增收
- 腾讯:收益。腾讯使用了大量流量,但是运营商是按照信道收费的,
- SDN:
- 软硬分离,通过软件控制网络。
- CDN
- CDN网络是内容分发网络
- CDN位于用户和服务器之间增加的Cache层
- 组成:
- 负载均衡设备,如DNS
- 高速缓存服务器
游戏分类
- 是否需要联网:
- 单机:魔兽争霸
- 网游:魔兽世界
- 游戏运行的平台:
- 手游:手机上
- 页游:浏览器
- 端游:PC客户端
- 主机游戏:运行在PS3、Xbox
- 主题类型:https://zhidao.baidu.com/question/1307962371683789139.html
- ACT:Action Game动作类游戏
- 《鬼泣》
- FTG:Fight Technology Game格斗类游戏
- LVG:Love Game恋爱养成游戏
- PZL/PUZ:Puzzle Game解谜类游戏
- RAC:Race Game竞速类游戏
- AVG:Adventure Game冒险类游戏
- A.AVG:ActionAdventure Game动作冒险类
- 《古墓丽影》
- SIM/SLG:Simulation Game、模拟经营类
- Education Simulation策略类
- Strategy Game
- RTT:Real-Time Tactics即时战术游戏
- RTS:Real-Time Strategy即时战略游戏
- 《红色警戒》《星际争霸》《帝国时代》
- STG:Shooting Game射击类
- FPS:First-Person Shooter Game第一人称射击类
- 《CS》、《守望先锋》
- RPG:Role-Playing Game角色扮演类
- 《暗黑破坏神》
- MOBA:Multiplayer Online Battle Arena:多人在线技术竞技游戏
- 联网的《星际争霸》,玩家通过RTS风格的界面控制单个角色
- 联网的dota的前身就是一个RPG地图
- 《英雄联盟》《王者荣耀》
- SPG:Sport Game体育类
- MUG:Music Game音乐类
- TAB:Table桌面类
- ACT:Action Game动作类游戏