0
点赞
收藏
分享

微信扫一扫

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化

之前问题的存在,之前只是用一个客户端在与服务器进行连接,当多个客户端进行连接的时候会连接不上处于等待状态,说明以前我们的服务器只能同时处理一个请求,故需要修改

服务器:

单发:初始化--等待客户端连接--处理--关闭这次连接,再次等待下一次连接,它只能处理一个客户端的请求。

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端

并发

初始化--等待连接--在这里处理它不会是主进程进行处理,而是交给子进程或线程进行处理,主进程又快速得等待下一次连接了。

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_02

可以同时处理多个客户请求了,我们一般都会去创建线程来处理。

我么可以利用线程池,在它里面已经创建好了一定数量的线程,如果要用直接从里面去获取,用完之后直接回收回来,而不需要每次有一个请求就去创建然后用完之后就删除这些附加的操作,

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_线程池_03

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_线程池_04

线程池使用实例

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_线程池_05

上面是有3个线程的线程池供10个任务来使用

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_06

编译的时候一定要带上-lpthread

首先是怎么创建线程池,然后怎么使用线程池

创建线程池

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_线程池_07

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_线程池_08

使用函数pthread_create (&(pool->threadid[i]), NULL, thread_routine, NULL)来创建线程。

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_09

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_创建线程_10

往线程池中添加任务

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_创建线程_11

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_12

销毁线程池

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_线程池_13

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_创建线程_14

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_创建线程_15

下面利用上面的线程池代码来优化之前的server.c程序

一个线程要去完成一项任务,那么首先找到我们的任务在哪里

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_线程池_16

。。。。。。看代码

server.c

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_17

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_创建线程_18

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_线程池_19

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_20

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_创建线程_21

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_创建线程_22

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_线程池_23

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_24

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_25

client.c

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_创建线程_26

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_27

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_28

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_线程池_29

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_30

阶段3-团队合作\项目-网络安全传输系统\sprint2-线程池技术优化_客户端_31

 

举报

相关推荐

0 条评论