实现并发服务器模型
文章平均质量分 87
百亿苍狗
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
消息发布功能实现
服务器接收到消息后, 会进⾏分发处理,最终会通过发布消息函数来进⾏处理,具体接收设计如。step 2 : 将订阅进程的 pid 作为消息类型,在封装消息内容,写⼊到消息队列。当客户端发布消息之后,服务器需要将这个消息转发给订阅这个主题的所有进程。step 1 : 将 msg.h msg.c 拷⻉服务器的⼯程⽬录中。step 1 : 在 server.h 中添加发布消息的处理函数。step 1 : 在 client.h 中添加消息发布接⼝。step 2 : 在 server.c 中添加发布消息接⼝。原创 2025-08-17 10:08:47 · 852 阅读 · 0 评论 -
消息订阅功能实现
step 2 : 将任务函数添加到线程池中,然后由线程池中的线程来执⾏, 在 runloop 添加相应的代码即可。在任务函数中,服务器根据当前模式进⾏分发, 分为订阅消息处理函数与发布消息处理函数, 这。当服务器接收到数据后,需要将数据以任务函数形式添加线程池中, 并在任务函数中实现相应的。服务器数据接收接⼝主要⽤于接收客户端数据后,将任务分配给线程处理,这⾥主要实现数据。这⾥的数据域是根据项⽬进⾏了定制,主要是保存主题与订阅进程的 id。step 1 : 在 server.h 中添加订阅处理函数的声明。原创 2025-08-17 09:58:49 · 683 阅读 · 0 评论 -
线程池执行函数、销毁、测试,项目模块整合与数据结构设计
server : 服务器⽬录 (msg 模块与 hashmap 模块在后⾯实现), 需要添加 server.h 与server.c。client : 客户端⽬录 (msg 模块在后⾯实现), 需要添加 client.h 与 client.c。修改 shm.c 创建共享内存的⽂件名为 shm 临时⽂件, 客户端与服务器的 shm 模块要同步。step 3 : 判断是否销毁,如果是销毁,则释放线程互斥锁,并让线程退出。创建两个⽬录,客户端与服务器, 并将相应的模块到对应的⽬录中。编写 Makefile。原创 2025-08-17 09:48:52 · 344 阅读 · 0 评论 -
线程池原理与框架设计、线程池的数据结构设计、线程池初始化、线程池添加任务
step 2 : 判断任务队列是否已满,如果满了则阻塞在 tp_cond_full 条件变量上。可以创建多个线程,在有任务的时候,则 可以执行任务,在没有任务时,则进入睡眠状态。在处理请求的过程中,需要创建线程与销毁线程,会导致资源的消耗,如何解决。使用多线程并发,将请求的处理分配给线程来完成,处理完成后则退出。线程池在初始化时会创建多个线程,在没有任务时,会进入睡眠状态。这里用户线程与线程池中的线程是生产者与消费者模型。是⽤于在任务队列为满时,阻塞添加任务的线程。step 5 : 初始化任务队列的容量。原创 2025-08-17 09:32:03 · 580 阅读 · 0 评论 -
项目框架介绍,环形队列设计
如果是发布, 则需要根据主题在 hashmap 中查询到订阅进程的 id,从发布消息进程获。消息发布者 (商家) 在公众号上发布相应的内容,并不关注具体的消息接收者 (消费者)消息发布者负责发布消息,是基于消息主题 (类别) 将发布的内容传输到消息服务器。消息的发布者与消息订阅者解耦,即消息发布者不⽤关⼼订阅者,订阅者也不⽤关⼼。消息订阅者负责接收消息,是基于消息主题 (类别)从消息服务器接收消息。是所有的关注公众号的消息接受者 (消费者) 都可以在公众号中看到消息。原创 2025-08-17 09:23:11 · 775 阅读 · 0 评论
分享