如何建立一个网站卖货,自己做网站分销,深圳制作手机网站,discuz下载1. 前言
本节内容是从操作系统的层面谈并发#xff0c;本节课程我们需要掌握如下内容#xff1a;
掌握并发编程的定义#xff0c;并发编程的定义是了解并发的前提基础#xff1b;从 CPU 谈并发诞生的意义#xff0c;一切语言的基础都是操作系统#xff0c;CPU 的并发与…1. 前言
本节内容是从操作系统的层面谈并发本节课程我们需要掌握如下内容
掌握并发编程的定义并发编程的定义是了解并发的前提基础从 CPU 谈并发诞生的意义一切语言的基础都是操作系统CPU 的并发与 Java 并发息息相关了解 CPU 对学习并发编程至关重要操作系统进程线程之间的联系。本节课程的重点之一三者之间的联系有助于对整体上有更加透彻的了解重点了解什么是进程和线程以及两者之间的区别。起初学习并发编程的同学对两者之间的区别区分不明确进程与线程的区别也是本节课程的重点之一重点理解串行并行并发三种线程执行方式的区别不同的执行方式会有不同的执行效果。 2. 并发编程的定义
定义 所谓并发编程是指在一台处理器上 “同时” 处理多个任务。并发是在同一实体上的多个事件多个事件在同一时间间隔发生。
意义开发者通过使用不同的语言实现并发编程充分的利用处理器CPU的每一个核以达到最高的处理性能提升服务器的资源利用率提升数据的处理速度。 3. 从 CPU 谈并发编程
首先看下图图中展示了最简单的 CPU 核心通过缓存与主存进行通讯的模型。 在缓存出现后不久系统变得越来越复杂缓存与主存之间的速度差异被拉大由于 CPU 的频率太快了快到主存跟不上这样在线程处理器时钟周期内CPU 常常需要等待主存这样就会浪费资源。从我们的感官上计算机可以同时运行多个任务但是从 CPU 硬件层面上来说其实是 CPU 执行线程的切换由于切换频率非常快致使我们从感官上感觉计算机可以同时运行多个程序。 为了避免长时间的线程等待我们一方面提升硬件指标如多级高速缓存的诞生这里不做讨论另一方面引入了并发概念充分的利用处理器CPU的每一个核减少 CPU 资源等待的时间以达到最高的处理性能。 4. 操作系统进程线程之间的联系与区别
我们首先来看看三者之间的关系从图中可以看到操作系统是包含多个进程的容器而每个进程又是容纳多个线程的容器。 什么是进程官方定义 进程baiProcess是计算机中的程序关于某数据集合上的一次运行活动是系统进行资源分配和调度的基本单位是操作系统结构的基础。 Tips系统进行资源分配和调度的基本单位其实就是 CPU 时间片的切换一个 CPU 同一时间只能操作一个任务只不过 CPU 在不停的切换工作任务这里的时间片就是我们所说的系统进行资源分配和调度的基本单位。 那么从定义上感觉非常的抽象但是进程其实就在我们日常的计算机使用过程中。请看下图进入任务管理器看 Windows 操作系统下的进程
什么是线程
官方定义: 线程是操作系统能够进行资源调度的最小单位它被包含在进程之中是进程中的实际运作单位每个线程执行的都是进程代码的某个片段特定的线程总是在执行特定的任务。
线程与进程的区别
诞生起源先有进程后有线程。进程由于资源利用率、公平性和便利性诞生。处理器的速度往往比外设的速度快键盘、鼠标等为了提高 CPU 的利用率诞生了线程目的就是为了提高程序的执行效率概念进程是资源分配的最小单位。 线程是程序执行的最小单位线程是操作系统能够进行资源调度的最小单位同个进程中的线程也可以被同时调度到多个 CPU 上运行线程也被称为轻量级进程内存共享默认情况下进程的内存无法与其他进程共享进程间通信通过 IPC 进行。 线程共享由操作系统分配给其父进程的内存块。 5. 串行并行与并发
串行顺序执行按步就搬。在 A 任务执行完之前不可以执行 B。
并行同时执行多管齐下。指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下并行性使多个程序同一时刻可在不同 CPU 核心上同时执行。
并发穿插执行减少等待。指多个线程轮流穿插着执行并发的实质是一个物理 CPU 在若干道程序之间多路复用其目的是提高有限物理资源的运行效率。 6. 小结
本节课程重点讲解了操作系统的并发原理以及进程和线程之间的区别与联系。除此之外理解串行并行并发三种线程执行方式的区别尤为重要对以后的课程学习有很大的帮助。