并发编程-生产者消费者级联的性能优化

 

 

 

f47b16db58854394b55fb4e0f1560943.png

 

0afc4a0c378e447a8b6c9e2d3a470e03.png 

 

模式

 

如果是需要for循环处理item list,

每个item之间,相互没有影响,可以独立进行处理,这种天生就适合多线程并行处理

每个item的处理又分为好几个步骤,每个步骤都比较耗时,且下一步依赖上一步的情况

这种模式,就非常适合使用生产者-消费者模式,下一步依赖上一步的情况,又适合采用级联的生产者-消费者模式,也就是上一个生产者消费者中的消费者,可以成为下一个生产者消费者中的生产者

 

 

 

电子发票的生成,用户先提交发票生成的需求,然后异步执行发票生成逻辑,生成成功后再短信或者微信通知用户

 

总结

性能优化,要多多利用缓存机制,多多利用异步机制。但是,引入新的技术就要注意技术的副作用,比如,

引入缓存就需要注意缓存是否过期的问题:通过摘要机制解决

并发的线程安全问题

 

 

 

 

记住一个宗旨,在进行并发编程时,java的线程们一定是协作式的运行的,而不是抢占式的

比如,main线程调用thread1.interrupt(),就是main线程希望线程thread1停下来,响应这个中断,此时就是main线程在试图与线程thread1协作

java大师们,把java线程设计成协作式的最大原因,是为了让每个线程都有充足的时间做自己的清理工作

 

守护线程和main线程共死,守护线程中的finally不一定会被执行,所以如果有明确需要释放的资源,则不能使用守护线程

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值