Java多线程并发中,如何优化线程上下文和调度策略?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2834个文字,预计阅读时间需要12分钟。
多任务操作系统常常需要同时执行多项工作。虽然工作数量可能大于机器的+CPU+数,但一个+CPU+同一时间只能执行一项任务。如何让用户感觉这些任务正在同时进行呢?操作系统的设计师巧妙地利用了以下方法:
多任务系统往往需要同时执行多道作业。作业数往往大于机器的 CPU 数,然而一颗 CPU 同时只能执行一项任务,如何让用户感觉这些任务正在同时进行呢? 操作系统的设计者 巧妙地利用了时间片轮转的方式。
线程上下文
对于单核 CPU 来说(对于多核 CPU,此处就理解为一个核),CPU 在一个时刻只能运行一个线程,当在运行一个线程的过程中转去运行另外一个线程,这个叫做线程上下文切换(对于进程也是类似)。
上下文切换实现过程
引起线程上下文切换的原因
线程调度算法
操作系统中线程调度主要有两种方式抢占式调度与协同式调度。
抢占式调度
抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制。
本文共计2834个文字,预计阅读时间需要12分钟。
多任务操作系统常常需要同时执行多项工作。虽然工作数量可能大于机器的+CPU+数,但一个+CPU+同一时间只能执行一项任务。如何让用户感觉这些任务正在同时进行呢?操作系统的设计师巧妙地利用了以下方法:
多任务系统往往需要同时执行多道作业。作业数往往大于机器的 CPU 数,然而一颗 CPU 同时只能执行一项任务,如何让用户感觉这些任务正在同时进行呢? 操作系统的设计者 巧妙地利用了时间片轮转的方式。
线程上下文
对于单核 CPU 来说(对于多核 CPU,此处就理解为一个核),CPU 在一个时刻只能运行一个线程,当在运行一个线程的过程中转去运行另外一个线程,这个叫做线程上下文切换(对于进程也是类似)。
上下文切换实现过程
引起线程上下文切换的原因
线程调度算法
操作系统中线程调度主要有两种方式抢占式调度与协同式调度。
抢占式调度
抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制。

