引言 实现并发编程有进程,线程,IO多路复用的方式.(并发和并行我们这里不区分,如果CPU是多核的,可能在多个核同时进行,我们叫并行,如果是单核,需要排队切换,我们叫并发) 进程和线程的区别 进程是计算机资源分配的最小单位,进程是对处理器资源(CPU),虚拟内存(1)的抽象, 虚拟内存是对主存资源(Memory)和文件(2)的抽象,文件是对I/O设备的抽象. 虚拟内存是操作系统初始化后内部维护的一个程序加载空间,对于32位操作系统来说,也就是寄存器有32位的比特长度,虚拟内存中每个字节都有一个内…
阅读本文仅需五分钟,golang协程调度原理,小白也能看懂,超实用. 什么是协程 对于进程.线程,都是有内核进行调度,有CPU时间片的概念,进行抢占式调度.协程,又称微线程,纤程.英文名Coroutine.协程的调用有点类似子程序,如程序A调用了子程序B,子程序B调用了子程序C,当子程序C结束了返回子程序B继续执行之后的逻辑,当子程序B运行结束了返回程序A,直到程序A运行结束.但是和子程序相比,协程有挂起的概念,协程可以挂起跳转执行其他协程,合适的时机再跳转回来. 线程调度原理 N:1模型,多个…
目录 golang协程同步的几种方法 协程概念简要理解 为什么要做同步 协程的几种同步方法 Mutex channel WaitGroup golang协程同步的几种方法 本文简要介绍下go中协程的几种同步方法. 协程概念简要理解 协程类似线程,是一种更为轻量级的调度单位,但协程还是不同于线程的,线程是系统级实现的,常见的调度方法是时间片轮转法,如每隔10ms切换一个线程执行. 协程则是应用软件级实现,它和线程的原理差不多,当一个协程调度到另一个协程时,将上一个协程的上下文信息压入堆栈,来回切换…
背景知识 这里先给出一些常用的知识点简要说明,以便理解后面的文章内容. 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定义: 操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位. 进程和线程的关系: 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. CPU的最小调度单元是线程不是进程,所以单进程多线程也可以利用多核CPU. 协程的定义: 协…
进程.线程.协程 - 进程:太重 - 线程:上下文切换开销太大 - 协程:轻量级的线程,简洁的并发模式 Golang协程:goroutine Hello world package main import "fmt" func main() { fmt.Println("Hello world!") } Golang协程特性实践 - go发起一个协程 - channel协程间通信,通道 - buffered channels具备缓冲队列的通道 go协程和channe…
  由于才开始写博客,之前都是写笔记自己看,所以可能会存在表述不清,过于啰嗦等各种各样的问题,有什么疑问或者批评欢迎在评论区留言. 如果你初次接触协程,请先阅读上一篇文章初识asyncio协程对asyncio有个初步的认识. 一.任务对象(task任务) 参照上一篇初识asyncio协程我们了解到了任务对象是对协程的一种封装,其中包含各种状态,如阻塞状态(suspended),运行状态(running),完成状态(done): 1.创建任务对象的三种方式 第一种:loop.create_task…
前言: 协程在Unity中是一个很重要的概念,我们知道,在使用Unity进行游戏开发时,一般(注意是一般)不考虑多线程,那么如何处理一些在主任务之外的需求呢,Unity给我们提供了协程这种方式 为啥在Unity中一般不考虑多线程 因为在Unity中,只能在主线程中获取物体的组件.方法.对象,如果脱离这些,Unity的很多功能无法实现,那么多线程的存在与否意义就不大了 既然这样,线程与协程有什么区别呢: 对于协程而言,同一时间只能执行一个协程,而线程则是并发的,可以同时有多个线程在运行 两者在内存…
一. 从列表中yield  语法形式:yield from <可迭代的对象实例> python中的列表是可迭代的, 如果想构造一个生成器逐一产生list中元素,按之前的yield语法,是在生成器内部遍历该list,每一轮用yiled依次产生一个生成的值. def generator(): for i in range(5): yield i return 'done' 采用yiled from语法,可以这样写, 每一个元素均用yield生成一个值, 是不是更简单 ! def generator…
辅助功能原理与基本使用详解 本文主要介绍辅助功能的使用 辅助功能基本原理 辅助功能基本配置和框架搭建 辅助功能实战解析 辅助功能基本原理   辅助功能(AccessibilityService)其实是一个Android系统提供给的一种服务,本身是继承Service类的.这个服务提供了增强的用户界面,旨在帮助残障人士或者可能暂时无法与设备充分交互的人们.   从开发者的角度看,其实就是提供两种功能:查找界面元素,实现模拟点击.实现一个辅助功能服务要求继承AccessibilityService类并…
ISO七层模型详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我刚刚接触运维这个行业的时候,去面试时总是会做一些面试题,笔试题就是看一个运维工程师的专业技能的掌握情况,这个很正常,给以一定的时间,你能回答出出题人满意的答案,就会给你进行加分,在做面试的时候我曾遇到过问FTP属于ISO的哪一层?其实这个是最简单的,这种面试题看到问题就应该随口说出答案的,如果你不能说出答案的话那么久跟着我以前来了解一下ISO七层模型的知识点吧. 由于最近刚刚工作需要,不得不捡起一些网络的知…