温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

web多线程程序与单进程程序的架构是什么

发布时间:2022-03-31 09:11:03 来源:亿速云 阅读:212 作者:iii 栏目:开发技术

这篇文章主要介绍“web多线程程序与单进程程序的架构是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“web多线程程序与单进程程序的架构是什么”文章能帮助大家解决问题。

多线程程序和单进程程序中都有使用,在网络服务中都有使用。多线程程序主要用于同步的处理一些请求,为了在同一时间处理较多的请求。一般采取线程池的策略,一个主线程来分配请求。

(一)常见的进程模型:

(1)多线程模型

web多线程程序与单进程程序的架构是什么

这种模式固定线程数量,吞吐量是接近每个线程的吞吐量*线程数。不具有伸缩性,伸缩性不强,在高负载下能力有很大限制。对于负载不大的情况下的同步数据访问应用还是比较广泛的。

(2)多线程模型二

                 web多线程程序与单进程程序的架构是什么

这种模型是一个线程负责调度任务到不同的线程,通常维护一个线程池,线程池的线程数量可以伸缩,由调度线程决定。回报也通过调度线程来处理,线程与线程之间通过共享内存来获取其他方式来通信都可。但是其***的线程数量也有限制。

(1)单进程模型

web多线程程序与单进程程序的架构是什么

这种模型采用全异步的模式处理请求,进程维护一个每个请求的全局队列,工作进程与网络进程是独立的,采用共享内存的模式进行通信,在全异步的情况下,也能做到高并发量,和高吞吐量。这种模型易于控制,需要对过载进行保护。

(二)几种常见的模型对比

(1)程序复杂度

最复杂是采用具有调度功能的线程池,这种模型需要一个调度线程,调度线程要做的工作包括指派工作线程,过载保护,与多个线程通信,同步。线程之间共享资源要加锁,线程之间可以消除共享资源,提高处理能力。可以采用同步的处理的模式访问,但是风险较大。

单进程的模型比较简单,一个进程将要完成所有功能,包括收包,逻辑处理,过载保护。

(2)性能

一般来说,前端接收请求的,具有多客户端,多版本,多协议的适合采用多线程的模式,如果有统一的协议格式,则应当采用具有调度线程的线程池来完成。如果协议不同,则需要采用不同的线程监听不同的端口来解决。

后台服务一般适合采用单进程。后台线程要求高并发量,高吞吐量。单进程模型消除了锁,并且避免了多线程很多的复杂问题。多线程在开发过程中还有个很大的缺点是不利于调试。对开发者的调式技巧要求较高。

后台也有使用多线程的,后台的后台一般都使用单进程。

(3)竞争

多线程存在竞争问题,多线程会遇到很多程序陷阱,全局的数据,队列,map等数据结构的修过都需要加锁

单线程的程序显然不会存在竞争性问题,单线程在程序中编程是比较简单的。很多时序以及竞争性问题都不存在。

(4)服务健壮性

多线程中,任何一个线程出现问题,都会引起整个进程的挂掉,这与单进程没有区别。多线程的一个好处是可以调用同步的api,而单进程网络服务中一般只允许调用异步的API。

关于“web多线程程序与单进程程序的架构是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

web
AI