2017年8月30日
摘要: 一、死锁现象与递归锁 进程也是有死锁的 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用, 它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程, 如下就是死锁 1 死锁 2 from threa 阅读全文
posted @ 2017-08-30 20:22 海燕。 阅读(2031) 评论(0) 推荐(2) 编辑
  2017年8月29日
摘要: 一多线程的概念介绍 threading模块介绍 threading模块和multiprocessing模块在使用层面,有很大的相似性。 二、开启多线程的两种方式 1 1.创建线程的开销比创建进程的开销小,因而创建线程的速度快 2 from multiprocessing import Process 阅读全文
posted @ 2017-08-29 19:13 海燕。 阅读(1124) 评论(0) 推荐(0) 编辑
  2017年8月28日
摘要: 一、什么是线程 线程:顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位。 多线程(即多个控制线程)的概念是,在一个进程中存在多个控制线程,多个控制线程 阅读全文
posted @ 2017-08-28 20:31 海燕。 阅读(1032) 评论(0) 推荐(2) 编辑
摘要: 一、数据共享 1.进程间的通信应该尽量避免共享数据的方式 2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的。 虽然进程间数据独立,但可以用过Manager实现数据共享,事实上Manager的功能远不止于此。 3.(IPC)进程之间的通信有两种实现方式:管道和队列 1 fr 阅读全文
posted @ 2017-08-28 20:02 海燕。 阅读(1323) 评论(0) 推荐(2) 编辑
  2017年8月26日
摘要: 一、互斥锁 进程之间数据隔离,但是共享一套文件系统,因而可以通过文件来实现进程直接的通信,但问题是必须自己加锁处理。 注意:加锁的目的是为了保证多个进程修改同一块数据时,同一时间只能有一个修改,即串行的修改,没错,速度是慢了,牺牲了速度而保证了数据安全。 1.上厕所的小例子:你上厕所的时候肯定得锁门 阅读全文
posted @ 2017-08-26 00:00 海燕。 阅读(5423) 评论(0) 推荐(0) 编辑
  2017年8月24日
摘要: 一、multiprocessing模块介绍 python中的多线程无法利用CPU资源,在python中大部分情况使用多进程。python中提供了非常好的多进程包multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行功能(函数),该模块与多线程模块thre 阅读全文
posted @ 2017-08-24 17:02 海燕。 阅读(1447) 评论(0) 推荐(0) 编辑
摘要: 背景知识 顾名思义,进程即一个软件正在进行的过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老的也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。所以想要真正了解进程,必须先了解操作系统。详见博客点击进入。 须知 阅读全文
posted @ 2017-08-24 15:09 海燕。 阅读(1555) 评论(2) 推荐(1) 编辑
  2017年8月23日
摘要: 1.函数对象:函数是第一类对象特点 1:可以被引用 1 def func(): 2 pass 3 f =func 4 print(f is func) 2:可以当做参数传给其它函数 1 def foo(): 2 print('from foo') 3 def bar(func): 4 print(' 阅读全文
posted @ 2017-08-23 16:56 海燕。 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 这个表示执行的是此代码所在的文件。 如果这个文件是作为模块被其他文件调用,不会执行这里面的代码。 只有执行这个文件时, if 里面的语句才会被执行。 这个功能经常可以用于进行测试。 python中,当打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':, 阅读全文
posted @ 2017-08-23 15:42 海燕。 阅读(447) 评论(0) 推荐(0) 编辑
  2017年8月22日
摘要: 一、什么是粘包 须知:只有TCP有粘包现象,UDP永远不会粘包 粘包不一定会发生 如果发生了:1.可能是在客户端已经粘了 2.客户端没有粘,可能是在服务端粘了 首先需要掌握一个socket收发消息的原理 应用程序所看到的数据是一个整体,或说是一个流(stream),一条消息有多少字节对应用程序是不可 阅读全文
posted @ 2017-08-22 20:02 海燕。 阅读(8607) 评论(2) 推荐(1) 编辑