摘要:
一、概述 感觉确实用着比generator还简单了呢,但好像还没有解决一个问题,就是遇到IO操作,自动切换,对不对?所以我们接下来就说说如何遇到IO就切换,不得不提到一个模块Gevent。 Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是 阅读全文
摘要:
一、Mysql5.6.10安装 1.1、必要软件 1.2、编译安装 [root@localhost src]#groupadd mysql [root@localhost src]# useradd mysql -g mysql [root@localhost src]# pwd /usr/loca 阅读全文
摘要:
一、概念 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调用时的状态(即所有局部状态的一 阅读全文
摘要:
一、概述 本篇博客主要写进程锁,__name__ == "__main__"函数作用,以及进程池的使用。 二、进程同步 2.1、进程锁 说明:通过multiprocessing中的Lock模块来实现进程锁。 1、这边不禁的有个疑问,就是进程中不是相互独立的吗?为啥还要加锁呐? 虽然每个进程都是独立运 阅读全文
摘要:
一、概述 之前我们讲述了进程之间的是通过进程中的Queue,来进行数据共享的,其实还有一种方式实现数据共享,那就是管道,pipe,以及数据共享manger。 二、数据通信 2.1、Pipe()函数 英文解释:The Pipe() function returns a pair of connecti 阅读全文
摘要:
一、概述 我们知道不同进程之间内存是不共享的,要想实现两个进程间的通信,咋办呢?我们用什么知识来解决呐?今天就来说说进程间的通信。 二、前戏 之前我们说了queue,这个是线程queue,它的主要目的是两个线程之间的数据,一个是生产者,一个是消费者的模型,而且你必须是线程。只能在这个主线程内的其他线 阅读全文
摘要:
一、概述 之前我们了解的线程,接下来我们学习多进程,进程之间是相互独立的,python是启动进程的时候,是启动的是原生进程。进程是没有GIL锁的,而且不存在锁的概念,进程之间的数据式不能共享的,而线程是可以的。 英文解释如下: multiprocessing is a package that su 阅读全文
摘要:
一、概述 queue is especially useful in threaded programming when information must be exchanged safely between multiple threads.(在多个线程之间安全的交换数据信息,队列在多线程编程中 阅读全文
摘要:
一、概述 我们日常生活中经常遇到红绿灯,我们就很好理解红绿灯的例子,就是红灯停,绿灯行。 我现在生成一个线程,这个线程我让它扮演红绿灯,它每过一段时间就变成绿灯,又过一段时间变成红灯,又变成黄灯。然后我再生成3-5个线程作为车。车看见红灯,它就停下来等着,如果说是绿灯,车子就走。所以就涉及到红灯这个 阅读全文
摘要:
一、概述 互斥锁 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 ,比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去。 信号量:就是在同一时间,可以只允许设定的数执行,所以设置了信号量,就有多把锁。 二、信号量 说明:这个好比有3个 阅读全文