摘要:
协程又叫做微线程,英文名叫Coroutine。与线程一样的是协程也相对独立,有自己的上下文,可相互切换,不同的是线程由解释器调用cpu来实现,而协程由程序自身控制。与线程一样,协程也可以实现生产者与消费者模式和实现并发。多协程与多线程相比,最大的优势就是协程极高的执行... 阅读全文
摘要:
在介绍进程池和线程池之前,我们需要对其原理有一个了解。总所周知,进程和线程都是不可被重复利用的,在实现高并发中,这会极大的浪费资源。所以首先我们应该想办法实现线程和进程的可重复利用,而生产者与消费者模式就可以很好地解决这个问题。当我们需要开启多个线程或进程时,难道只能... 阅读全文
摘要:
进程与线程在通信中都会遇到各自的问题,这是因他们各自的性质而产生的。每个进程有自己的地址空间,两个进程中的地址即使值相同,实际指向的位置也不同,故进程间无法直接就能通信。虽然同一进程的线程共享全局变量和内存,使得线程之间共享数据很容易也很方便,但会带来某些共享数据的互... 阅读全文
摘要:
python中常见处理时间的函数除了之前介绍的datetime模块,还有一个time模块,其中最著名的一个方法就是sleep,其在线程、进程中常常得到应用。time模块中表示时间的方式一般有以下四种:时间戳:时间戳表示的是从1970年1月1日00:00:00开始按秒计... 阅读全文
摘要:
python内置模块random是用来生成随机数的,在许多场合都能应用到,算是比较常见的一种模块吧,下面详细介绍其具体用法。基本用法随机生成浮点数:有两种,一种没有参数,默认是0~1,另一种可以指定随机生成的浮点数范围。>>> random.random()0.644... 阅读全文
摘要:
显示当前进程或线程multiprocessing.current_process()#显示当前进程threading.current_thread()#显示当前线程join等待:子进程或子线程结束后再执行主进程或主线程pro_name.join()thr_name.j... 阅读全文
摘要:
推荐使用python内置函数zip,它可以将x个y维列表变成一个zip对象,将zip对象拆包可以发现它变成了y个x维元组。我们还可以将这个对象变成一个元组或列表。如下所示:如果是两个列表的zip,我们还可以将其变成字典形式。下面是一个小实例:name = ['wl',... 阅读全文
摘要:
什么是进程和线程?进程是加载到内存,正在被执行的程序。每个进程都拥有自己的地址空间、内存、数据栈以及其他用于跟踪执行的辅助数据。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。线程是比进程还小的运行基本单元,一个进程至少有一个线程。线... 阅读全文
摘要:
上上篇博客讲的套接字,由于其阻塞性而导致一个服务端同一时间只能与一个客户端连接。基于这个缺点,在上篇博客我们将其设置为非阻塞实现了一个服务端同一时间可以与多个客户端相连,即实现了并发,但其同样留下了一个缺点:CPU的利用率低。这一篇博客是基于这个缺点再进一步进行改善,... 阅读全文
摘要:
上篇博客介绍的套接字因为其阻塞性导致线程可能会被一直占用,从而造成一个服务端只能连接一个客户端的现象。在python中,可以将套接字设置为非阻塞型,即在套接字实例化后将setblocking方法的参数改为False。下面看一下非阻塞套接字和阻塞套接字的区别。accep... 阅读全文