并发编程(一)

2022-03-24 15:31:03 浏览数 (1)

目录

  • 并发编程理论
    • 并行
    • 并发
    • 程序和进程
    • 进程三状态图
    • 同步、异步
    • 阻塞、非阻塞
    • 同步/异步、阻塞/非阻塞组合
  • 并发编程实操
    • 创建进程
    • 进程的join方法
    • 进程间默认无法交互
    • 对象方法

并发编程理论

并行

并行是指“并排行走”或“同时实行或实施”。在操作系统中,若干个程序段同时在系统中运行,这些程序的执行在时间上是重叠的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,无论从微观还是宏观,程序都是同时执行的;

代码语言:javascript复制
问:单核CPU能否实现并行?
答:不能,但是可以实现并发

并发

并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行); 通俗讲,多个程序只要看起来像同时运行即可;

代码语言:javascript复制
问:12306可以同一时间支持几个亿的用户买票 问是并行还是并发
答:高并发

以上建立在单核CPU上~

程序和进程

百度百科:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 从开发角度,程序可以理解为一堆代码,而进程是怎么产生的呢? 进程的产生可以理解为:正在运行的程序,是活的,而程序(一堆代码)放在那是死的,不运行也不会产生什么;

单核情况下的进程调度

代码语言:javascript复制
1、FCFS:先来先服务,如果先来一个长作业,比如要执行24h的程序,后面只有1s的程序,这样对短作业是不友好的;
2、短作业优先调度算法:相反这样是对长作业不友好;
		    |
    		|
             


	

0 人点赞