多线程与Android线程性能优化(一)

1,477 阅读3分钟

基础概念

CPU核心数和线程数的关系

多核心:也指单芯片多处理器(CMP),核心思想就是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内并执行不同的进程。- 并行处理

多线程:Simultaneous Multithreading。简称SMT。SMT可通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行并共享处理器的执行资源,可最大限度的实现宽发射、乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据相关或Cache未命中带来的访问内存延时。

核心数和线程数的关系:一般情况下是1:1的关系,但Intel引入了超核心技术,使核心数和线程数形成1:2的关系,所以Intel处理器的电脑出现了4核八线程、6核12线程等。

CPU时间片轮转机制

一个CPU同一时间只能执行一个线程。但是,我们在实际使用过程中,可以基本无限制的启动线程,即使是在单核CPU上面,而且看起来多个线程是同时执行的,这是为什么呢?这里就运用了CPU的时间片轮转机制

时间片轮转法(RR调度)

根据先进先出原则,排成队列。调度时,将CPU分配给队首进程,让其执行一个时间段(时间片),时间片通常为10~100ms数量级,当执行的时间片用完时,会由计时器发出时钟中断请求,调度程序便根据这个信号中断当前执行的进程,并将它排到队列末尾,然后再把CPU重新分配给当前队列的队首进程,同理如此往复。

时间片大小的取决因素

  • 系统对响应时间的要求
  • 就绪队列中进程的数目
  • 系统的处理能力

相关链接:

操作系统-进程、线程、调度

并发 - CPU核心数,线程数,时间片轮转机制解读

什么是进程和线程

进程是程序运行资源分配的最小单位

资源包括:CPU、内存空间、磁盘等,同一进程中的多条线程共享该进程中的全部系统资源,而进程和进程之间是相互独立的。

线程是CPU调度的最小单位,必须依赖进程存活

线程是进程的一个实体(也可以称之为轻量级的进程)

并行和并发

并行:指应用能够同时执行不同的任务。

并发:指应用能够交替执行不同的任务,并发必须跟时间挂钩,也就是说一定时间的并发量

高并发编程的意义、好处和注意事项

高并发的好处

  • 充分利用CPU的资源
  • 加快响应用户的时间
  • 可以使代码模块化、异步化、简单化

高并发需要注意的事项

  • 线程之间的安全性
  • 线程之间的死循环过程(死锁)
  • 线程太多会将服务器资源耗尽,形成死机、宕机(可以通过线程池解决)