游戏服务器里进程线程和协程的区别
游戏服务器里进程线程和协程的区别
1,游戏服务器进程
经典定义:一个执行中程序的实例。系统中的每个程序都运行在某个进程的上下文中。(-摘自 CSAPP)
进程是系统资源分配的最小单位
2,游戏服务器线程(thread)
线程就是运行在进程上下文中的逻辑流。
线程是操作系统能够进行运算调度的最小单位。
3,游戏服务器协程
相对子例程而言,协程更为一般和灵活,但在实践中使用没有子例程那样广泛。
根据维基百科对子例程的描述:是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。我可以将子例程理解为一个函数。
4,区别和联系
首先,进程提供给应用程序的关键抽象为:
一个独立的逻辑控制流:它提供一个假象,好像我们的程序独占地使用处理器。
一个私有的地址空间,它提供一个假象,好像我们的程序独占地使用内存系统。
从以上描述我可以看出,一个进程是一个独立进行的任务,它占用的系统资源有:地址空间,全局变量,文件描述符,硬件资源等。【艾娜】