- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络中的并发处理
网络游戏编程 网络中的并发处理 并发处理 并行计算: 微观意义上讲,两个或多个计算任务在同一时刻发生,即这些计算物理上同时发生,称之为并行计算。在计算机体系中,可以利用多用户的操作系统,使用多处理器实现真正的并行计算。 并发处理: 单处理器体系中,可以通过分时技术,在多任务间快速切换使用单处理器,从而模拟并行计算。无论是真正的并行计算,还是对并行计算的模拟,从宏观上看,都是为了实现多个计算任务同时向前推进。计算机系统同时处理多任务的方式,可以称为并发处理。 并发处理 并发处理的应用 1.并发处理可以出现在同一网络的主机中,许多对应用程序可以并发通信,分享网络。 2.并发处理也可以出现在特定的计算机系统中。例如,在一个分时系统中的多用户。 3.一组机器上的多用户也可以并发处理。当在多主机上运行客户端时,可以实现并发处理;一个多任务操作系统也可允许在单个主机上并发运行多份程序拷贝。 多主机上的多用户并行处理,多任务操作系统允许单台计算机上多份拷贝并行处理 并发处理 客户端的并发处理 客户端软件通常不需要实现并发处理。如果操作系统运行多用户分别打开客户端,多个客户端之间的并发是自动处理的。一个客户端程序就像任何普通的应用程序一样,不需要明确的管理其并发运算。 服务器端的并发处理 服务器端必须同时处理多个请求。服务器端软件必须通过明确的编程过程处理同时发生的数据请求。 服务器端处理多个数据请求 进程 进程不同于程序(program)。因为进程是处于活动执行状态中的,而不是指保存在磁盘中的文件。当代码被载入计算机时,操作系统允许执行一个或多个相应的实例。并发处理操作系统允许多个进程在同一时间执行同样的代码片段。这意味着每个进程的运行都是独立的, 在一个单CPU架构中,从微观角度看,在特定时刻CPU只能执行一个进程。操作系统迅速在不同的进程间切换,似乎在同一时刻执行了多个进程。从人的观察角度看,很多进程正在同时执行。我们使用并发运行来阐述这样的概念,它意味着“显得同时执行”。 在一个单CPU系统中,操作系统执行并发处理。在多CPU系统中,每一个CPU都同时与其他CPU共同执行进程。当然,编程人员在进行并发编程时,不需要知道底层硬件由单CPU还是多CPU构成。 线程 什么是线程? 一些操作系统提供了并发处理的第二种形式——并发执行线程。 线程也拥有自己的指令指针以及本地变量的拷贝,并且相对于其他线程独立运行。线程机制不同于进程机制,但是每一个线程必须依附于一个单独的进程。 虽然每个线程都有本地变量的拷贝,但是所有线程都分享全局变量的单份拷贝。更重要的是,在一个线程中的所有线程将分享操作系统分配给进程的资源,包括网络通信所使用的描述符。 一个并发程序能够通过创建多个独立的进程来实现,也可以通过创建一个多线程的进程来实现 多线程设计的一个潜在缺陷在于相互间的冲突。因此,编写多线程代码的程序员必须要避免造成这样的问题。 线程 过程调用 在面向过程的编程语言中,所执行的代码能够包含对子程序的调用。 如果同时执行多线程代码,这些线程能够访问被调用函数的不同位置。 ? 面向过程的编程语言在过程调用中将使用堆栈系统。在不同的线程中使用了独立的过程调用。当多线程并发执行一段代码时,每一个线程都有独立的活动记录堆栈。 线程 实例(非多线程版本): #include stdlib.h #include stdio.h #include process.h int addem(int); int main(int argc, char *argv[]) { addem(5); return 0 ; } int addem(int count) { int i, sum; /* 定义局部变量*/ sum = 0; for (i=1 ; i=count ; i++) { /* 从1到count的循环 */ printf(The value of i is %d\n, i); fflush(stdout); /* 更新输出缓冲区 */ sum += i; } printf (The sum is %d\n, sum); fflush(stdout); return 0; /* 终止运行 */ } 程序执行结果为: The value of i is 1 The value of i is 2 The value of i is 3 The value of i is 4 The value of i is 5 The sum is 15 线程 实例(多线程版本): #include stdlib.h #include stdio.h #include proc
您可能关注的文档
- 线性代数-线性变换的矩阵表示.ppt
- 线性代数-行列式的展开定理.ppt
- 线性代数方阵的行列式.ppt
- 线性代数第三章第二节向量组的线性相关性例题.ppt
- 线性代数第二章知识要点.ppt
- 线性代数曲线曲面do.ppt
- 线性代数第五章第二节.ppt
- 线性代数第章行列式-5-.ppt
- 线性代数课件-- 行列式的计算.ppt
- 线性代数课件-利用初等变换求逆矩阵.ppt
- 2024年学校党总支巡察整改专题民主生活会个人对照检查材料3.docx
- 2025年民主生活会个人对照检查发言材料(四个带头).docx
- 县委常委班子2025年专题生活会带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”对照检查材料四个带头:.docx
- 巡察整改专题民主生活会个人对照检查材料5.docx
- 2024年度围绕带头增强党性、严守纪律、砥砺作风方面等“四个方面”自我对照(问题、措施)7.docx
- 2025年度民主生活会领导班子对照检查材料(“四个带头”).docx
- 国企党委书记2025年度民主生活会个人对照检查材料(五个带头).docx
- 带头严守政治纪律和政治规矩,维护党的团结统一等(四个方面)存在的问题整改发言提纲.docx
- 党委书记党组书记2025年带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查发言材料.docx
- 2025年巡视巡察专题民主生活会对照检查材料.docx
文档评论(0)