
Golang并发编程
文章平均质量分 53
Golang高并发知识
源滚滚编程
人生苦短,我用Python,坚持每天学习,坚持每天进步一点点,一对一带徒弟。
展开
-
Golang并发编程入门教程
时间单位1S = 1000ms1ms = 1000us1us = 1000ns并发与并行并行: 借助多核 cpu 实现。 (真 并行)并发:宏观:用户体验上,程序在并行执行。微观:多个计划任务,顺序执行。在飞快的切换。轮换使用 cpu 时间轮片。 【假 并行】进程并发程序:编译成功得到的二进制文件。占用磁盘空间死的系统中相同的程序一般只有一个,有可能存在不同版本号的程序进程:运行起来程序。 占用系统资源。进程是根据程序创建的,运行在内存中活的原创 2021-12-26 09:53:50 · 686 阅读 · 0 评论 -
Linux中的信号是什么?
什么是信号?操作系统信号,英文signal,简称信号。是IPC中唯一一种异步的通信方法。它的本质是用软件来模拟硬件的中断机制。信号用来通知某个进程有某个事件发生了。例如,在命令行终端按下某些快捷键,就会挂起或停止正在运行的程序。另外,通过kill命令杀死某个进程的操作也有信号的参与。信号的表示方式?每一个信号都有一个以“SIG”为前缀的名字,例如SIGINT,SIGQUIT,SIGKILL等等。在操作系统内部,这些信号都由正整数表示,这些正整数称为信号编号。如何查看操作系统的所有信号原创 2021-11-29 23:52:51 · 1045 阅读 · 0 评论 -
什么是管道
管道管道是一种半双工的通信方式只能用于父进程与子进程的通信,或者同祖先的子进程之间的通信管道的优缺点优点:简单缺点:只能单向通信,对通信双方在关系上有严格限制shell使用管道这里的符号“|”就是管道psaux | grep goGo语言创建管道的步骤1、创建shell2、创建管道3、执行shell命令4、将shell命令执行结果通过管道重定向Go语言使用管道示例1package mainimport ( "fmt" "os/exec")func m原创 2021-11-27 16:57:17 · 918 阅读 · 0 评论 -
原子操作和临界区的区别
竞态条件只要多个进程同时对同一个资源访问,就很可能互相干扰,这种干扰通常称为静态条件原子操作如果能够保证获取并更新计数器的值是一个原子操作的话,那么竞态条件就不会发生执行过程中不能被中断的操作称为原子操作原子操作必须由一个单一的汇编指令表示,并且需要得到芯片级别的支持原子操作只适合细粒度的简单操作够在标准库代码包sync/atomic中提供了一些函数,用于实现原子操作临界区只能被串行化访问或执行的某个资源或某段代码称为临界区原子操作是不能中断的,而临界区没有这种强制规定相比原子操原创 2021-11-27 00:20:23 · 727 阅读 · 0 评论 -
什么是多个程序并发执行的基础
什么是多个程序并发执行的基础进程切换和进程调度是程序并发执行的基础。进程切换假设有A和B两个进程换出:假设内核此刻要换下正在CPU上运行的进程A,并让CPU开始运行进程B。在换下进程A之前,内核必须要及时保存进程A的运行时状态,以便下次恢复执行。换入:假设进程B不是第一次运行,那么让B重新运行之前,必须要保证依据之前保存的相关信息,把进程B恢复到之前被换下时的运行时状态这种在进程换出换入期间必须要做的任务统称为进程切换。进程调度除了进程切换,为了使生存着的进程都有运行的机会,内核还要考原创 2021-11-26 23:19:13 · 534 阅读 · 0 评论 -
Linux系统调用过程
用户空间用户空间和内核空间都是操作系统在内存上划分出的一个范围,它们共同瓜分了操作系统能够支配的内存区域用户进程总生存在用户空间中用户进程不能与其所在计算机的硬件进行交互内核可以与硬件交互,但是它却总生存在内核空间中指针内存区域中每一个单元都是有地址的内存地址由指针来标识和定位指针是一个整数,由若干个二进制数表示通过指针来寻找内存地址的操作叫做寻址系统调用用户进程无法直接访问内核空间为了使用户进程能够使用操作系统更底层的功能,内核会暴露出一些接口以供它们使用用户进程调用内原创 2021-11-26 22:59:35 · 403 阅读 · 0 评论 -
Linux操作系统中进程的状态
Linux操作系统中进程的状态状态概述在Linux中,每个进程在每个时刻都是有状态的。可能的状态共有6个:1、可运行状态(TASK_RUNNING,简称为R)2、可中断的睡眠状态(TASK_INTERRUPTIBLE,简称S)3、不可中断的睡眠状态(TASK_UNINTERRUPTIBLE,简称D)4、暂停状态或跟踪状态(TASK_STOPPED或TASK_TRACED,简称T)5、僵尸状态(TASK_DEAD-EXIT_ZOMBLE,简称Z)6、退出状态(TASK_DEAD-EXIT_原创 2021-11-25 08:29:19 · 533 阅读 · 0 评论