并发编程

Posted rongge95500

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并发编程相关的知识,希望对你有一定的参考价值。

=====并发编程=====

  • 什么是进程:

是一个正在运行的程序,或者是程序的运行过程,它是一个高度抽象的概念。进程起源于操作系统,是操作系统最核心的概念,其他所有内容都是围绕进程的概念展开的。

  • 什么是操作系统:

简单说操作系统就是一个协调管理和控制计算机硬件资源和软件资源的控制程序。它是处于计算机硬件与应用软件之间的一个由操作系统内核与系统调用组成的软件。

  • 操作系统的功能:

1、为程序员调用硬件资源提供了更好、更简单、更清晰的模型。
2、将应用程序对也硬件资源的竟态请求变得有序化。

  • 操作系统的发展(计算机的发展史):

第一代计算机(1940-1955)的诞生:

1952年12月研制出IBM第一台存储程序计算机,也是通常意义上的电脑,它叫IBM701。这是IT历史上一个重要的里程碑。这个时期的计算机使用的大都使用的是真空管。而且在这个时期的程序设计使用的是纯粹的机器语言编写的,没有程序设计语言(也没有汇编),更是没有操作系统,所有的程序设计都是直接操控硬件。
所以须要注意的是:同一时刻只能有一个程序在内存中被CPU调用执行,只有当一个程序被完全地执行完,才会执行下一个程序,因此程序的执行是串行的。

第二代计算机(1956-1965)的诞生:

第二代计算机时期开始出现了晶体管和简单的操作系统(批处理系统),有了程序设计语言(汇编语言),使用的还是穿孔卡片!
优点:是采用批处理可以节省机时。
缺点:计算的过程仍然是顺序计算,也就是串行。

第三代计算机(1965-1980)的诞生:

第三代计算机都开始采用集成电路芯片和多道程序设计(代表是IBM公司的360)。
第三代计算机的诞生,根本性的解决了第一、第二代计算机的只能串行执行程序的问题。这就是它应用的多道技术。

  • 多道技术:(实现并发的核心)

多道:是指多个程序,多道技术的实现是为了解决多个程序竞争或者说共享一个资源的有序调度问题。
它的解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。

空间上的复用:将内存分为几个部分,每个部分放入一个程序,这样,同一时间内存中就有多道程序。但是有个问题就是如果内存彼此不分割开,则一个程序可以访问另一个程序的内存,这样首先丧失的是安全性,其次丧失的是稳定性。所以程序之间的内存必须分割,而且需要在硬件层面实现。

时间上的复用:当一个程序在等待IO时,另一个程序可以使用CPU,相同,当这一个程序也出现IO时,下一个程序就可以使用CPU....
注意:虽然三代计算机有多道技术,但是它的操作系统仍然是批处理系统。

以上是关于并发编程的主要内容,如果未能解决你的问题,请参考以下文章

Go语言学习之旅--并发编程

并发编程路线

java并发编程看啥书比较好

JAVA并发编程:并发编程的认识

并发编程的基础

Java并发编程之美