请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,请教个多次请求的问题

同一时刻多次请求同一个app的接口,这是同一个进程内的不同线程处理的吗?若这个app算是一个进程,那么内部有个可造成死锁的代码,是不是与死锁的定义冲突呢,好多网络解释死锁定义都是多个进程请求资源冲突造成死锁,然后举例却用不同线程(感觉像是同一个进程内的),感觉有些糊涂

正在回答 回答被采纳积分+3

1回答

翔仔 2023-03-13 09:42:29

同学好,同一个接口 多个请求进来,如果你处理请求服务是水平部署的,即有多个容器,且请求是均衡打在这些容器上的,如果请求很多,那单个容器也就是单个服务实例必然会被并发请求,一个接口可以理解为一个服务进程提供的一个处理函数入口,所以如果你的接口里存在共享变量,且是通过synchronized控制访问顺序的,就会有锁的问题。如果你有 a b 两个变量,需要获取a和b才能执行,那么处理不当就会有请求a获取了锁a,请求b获取了锁b,就会陷入课程说的死锁。

0 回复 有任何疑惑可以回复我~
  • 老师,我想知道,每个请求到底是线程还是进程,有说线程的,比如每次请求tomcat就会从线程池中拿出一个空闲线程执行请求,比如您说的ab例子,既然是2个线程之间出现的死锁,为何会出现多个进程资源冲突导致死锁的定义呢?定义是错误的吗?还是说每次请求都是一个新进程呢,且请求的进程与应用运行的进程有什么样的关系呢?
    回复 有任何疑惑可以回复我~ 2023-03-13 22:45:47
  • 翔仔 回复 提问者 weixin_慕后端0303911 #2
    同学好,你可以理解一个服务就是一个进程,你请求到这个服务也是这个服务的同一个进程来处理,每个进程服务会有多个线程处理
    回复 有任何疑惑可以回复我~ 2023-03-15 22:44:26
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信