Android上实现高并发,可延迟处理

目录

 

1.Thread和线程池优缺点对比

1.1使用Thread

1.2使用线程池

2.实现Android高并发,可延迟处理的解决方案

2.1为什么不推荐无限制创建Thread执行

2.2实现多线程并发处理解决方案

2.3具体实现如下:

2.4模拟测试多线程并发及延迟执行


1.Thread和线程池优缺点对比

1.1使用Thread

1)每次new Thread新建对象性能差;
2)线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom;
3)缺乏更多功能,如定时执行、定期执行、线程中断;

1.2使用线程池

相比new Thread,Java提供的四种线程池的好处在于:
1)重用存在的线程,减少对象创建、消亡的开销,性能佳;
2)可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞;
3)提供定时执行、定期执行、单线程、并发数控制等功能;

2.实现Android高并发,可延迟处理的解决方案

2.1为什么不推荐无限制创建Thread执行

CPU之所以要增加线程数,是源于多任务处理的需要。线程数越多,越有利于同时运行多个程序,因为线程数等同于在某个瞬间CPU能同时并行处理的任务数。 因此,线程数是一种逻辑的概念,简单地说,就是模拟出的 CPU 核心数。一个核心最少对应一个线程,但英特尔有个超线程技术可以把一个物理线程模拟出两个线程来用,充分发挥 CPU 性能,即一个核心可以有两个到多个线程。

2.2实现多线程并发处理解决方案

可以采用生产者,消费者的模式,生产者指需要具体执行的线程,消费者负责执行线程,将线程可以有序执行,防止线程无限制执行占用过多的资源;

以下是生产消费者队列:

生产者:将具体要执行的线程放入消息队列;

消费者:线程池负责执行将从队列中线程执行;

拒绝机制:若发现线程池已满,则执行拒绝机制,将线程放入消息队列等待,等待线程池空闲继续执行;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值