教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 go并发编程笔记

go并发编程笔记

发布时间:2022-02-06   编辑:jiaochengji.com
教程集为您提供go并发编程笔记等资源,欢迎您收藏本站,我们将为您提供最新的go并发编程笔记资源

<h2>go语言高级编程笔记</h2><h4>并发编程</h4><ul><li>

一、并发编程的相关概念
1、并发编程概念:使多个任务【程序】可以在同一时间执行以便能够更快的得到结果
2、多元程序:允许操作系统同时运行多个程序,cpu来回切换,缺点:对系统资源进行无限制的抢夺造成程序频繁发生死锁现象
3、串行程序:只能被顺序执行的指令列表
4、并行程序:可以在并行的硬件上执行的并发程序
5、并发程序:被并发的执行的两个或两个以上的串行程序的统称
6、并发系统
7、并发程序的不确定性:没有明确的执行顺序
8、并发程序的内部交互
    同步的原则:某个资源同一时刻只能被一个程序占用
    同步的作用:避免在并发访问共享资源时可能存在的冲突,以及确保在互相传递数据时能够顺利的接通

</li><li>

二、多进程编程
1、IPC:多进程程序中,程序之间需要互相协作完成任务,而多个进程程序之间的通讯方式就叫做IPC
   基于通讯的IPC方法:
     以数据传输为手段:
       管道:被用来传送字节流
       消息队列:被用来传送结构化的消息对象
     以共享内存为手段:主要为共享内存区,是最快的一种IPC方法
   基于信号的IPC方法:操作系统信号机制,是唯一的一种一部IPC方法
   基于同步的IPC方法:操作系统信号灯
   
   注:golang支持的 管道、信号、socket
2、进程:程序的执行被称为一个进程,是操作系统进行资源分配的一个基本单位
  a、进程的衍生:fork子进程
  b、进程的标识:pid、ppid
  c、进程的状态:
    可运行状态R:如果一个进程处于该状态,那么说明它将要、立刻或正在CPU上运行
    可中断的睡眠状态S:当系统正在等待某个事件【如网络连接或信号灯】的发生时会进入此状态
    不可中断的睡眠状态D:和S的唯一区别就是不可被打断的
    暂停状态或跟踪状态T:向进程发送SIGSTOP信号就会使该进程进入暂停状态
    僵死状态Z:表示改进程即将要结束,进程占用的绝大多数资源会也都已经回收
    退出状态X:
  d、进程的空间:
    用户空间:用户进程不能与计算机硬件进行交互,生存与用户空间
    内核空间:内核可以与硬件进行交互,生存于内核空间
  e、系统调用:为了使用户进程能够使用操作系统更底层的功能,内核暴露一些接口供其调用,这些接口调用称之为系统调用
    内核态:系统调用时,CPU切换到内核态
    用户态:大部分时间cup处于用户态
    CPU切换
  f、进程切换和进程调度:是程序并发执行的基础

</li></ul>

您可能感兴趣的文章:
Golang笔记:语法,并发思想,web开发,Go微服务相关
想系统学习GO语言(Golang
Go语言笔记--基础(一)
【Go学习笔记】 1、Go编程基础
Golang学习笔记(五):Go语言与C语言的区别
龙芯平台构建Go语言环境指南
go run main.go 参数_Go语言入门:Hello world
Go 开发关键技术指南 | 为什么你要选择 Go?(内含超全知识大图)
go 语言学习历程
与 Jupyter 交互的 Go 编程

[关闭]
~ ~