【无标题】

本文探讨了服务调用不当导致的死锁问题,特别是在多线程环境中,如Web服务和FTP文件处理。提出了解决方案,包括增加线程数、使用函数调用而非接口、文件重命名锁以及利用Redis或数据库标记锁。
摘要由CSDN通过智能技术生成

服务调用不当引起的死锁问题

问题场景:
web服务线程池有10个,接口有A B 接口,访问A接口会调用B接口;B接口只有简单逻辑,当超过10个请求访问A时,10个线程池都在A中,并且要请求B,这时由于没有空闲线程,因此对于B的请求进入了排队队列里,这时就形成了死锁
解决方案:
1.增大线程数
2.对于同个线程池的服务,以函数调用的形式,而不是以接口的形式
3…

多线程处理ftp文件

场景:
服务部署在多个机器上,并且不单独把ftp处理的功能单独放到某个机器上有效
当对ftp的文件进行操作时,单线程下是不需考虑冲突问题;当多线程处理时,就要考虑锁的问题,这里用一个简单的方案:就是对文件以重命名的方式进行锁
当找到需要处理的ftp文件时,对文件重命名;可以是加一个时间戳后缀;比如 A.txt文件rename后变为A.txt.yyyyMMdd;重命名成功则继续处理

其他方案:
1.以其他中间件标记锁:redis或者数据库
2.对文件名进行取模,如果文件名含有中文,可以进行base64编码或者其他,然后再进行运算,然后每个机器处理一部分: 两个机器,则对2取模,A机器处理0,B机器处理1的
3…

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值