随笔分类 -  Python

上一页 1 2 3 4 下一页
Python,Django,Web
同步对象(同步条件Event)
摘要:event = threading.Event() #创建同步对象 event.wait() #同步对象等待状态 event.set() #同步对象设置Trueevent.clear() #清除同步对象 event.wait() >捕捉到 event.set() > 继续执行 >event.clea 阅读全文
posted @ 2018-06-01 16:43 Python哥 阅读(162) 评论(0) 推荐(0)
线程死锁和递归锁
摘要:在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁,因为系统判断这部分资源都正在使用,所有这两个线程在无外力作用下将一直等待下去。 下面是一个死锁的例子: 阅读全文
posted @ 2018-06-01 14:06 Python哥 阅读(213) 评论(0) 推荐(0)
同步锁Lock(互斥锁)
摘要:同步锁作用: 在我当前包含(lock.acquire() 和 lock.release()之间 )的代码没有执行完成,不进行线程切换,必须等我执行完了,下一个线程才能继续执行(为什么要用同步锁,假如我们同时在操作一个数据的时候,比如数字100,10个线程同时操作他减1的时候,每个线程减10次,我们想 阅读全文
posted @ 2018-05-30 20:54 Python哥 阅读(415) 评论(0) 推荐(0)
GIL计算python 2 和 python 3 计算密集型
摘要:首先我画了一张图来表示GIL运行的方式: 结果: # 加法结果 499999500001 # 乘法结果: 结果太长省去了 # 上面2个线程总共运行时间: 27.660937547683716 Python 2中计算如上代码: 结果: # 加法结果 499999500001 # 乘法结果: 结果太长省 阅读全文
posted @ 2018-05-30 17:36 Python哥 阅读(442) 评论(0) 推荐(0)
什么是python的全局解释锁(GIL)
摘要:GIL解决了Python中的什么问题? 为什么选取GIL作为解决方案? 对多线程Python程序的影响 为什么GIL还没有被删除? 为什么在Python 3 中GIL没有被移除? 如何处理Python中的GIL? 我们所说的Python全局解释锁(GIL)简单来说就是一个互斥体(或者说锁),这样的机 阅读全文
posted @ 2018-05-30 16:53 Python哥 阅读(5163) 评论(0) 推荐(2)
IO密集型和计算密集型
摘要:我们常说的多任务或者单任务分为两种: IO密集型的任务 计算密集型的任务 IO密集型的任务或:有阻塞的状态,就是不一直会运行CPU(中间就一个等待状态,就告诉CPU 等待状态,这个就叫IO密集型),例如:sleep 状态等 这个上面代表了IO密集型. 计算密集型的任务: 反过来没有等待状态就是计算密 阅读全文
posted @ 2018-05-30 16:16 Python哥 阅读(5121) 评论(0) 推荐(2)
并发并行与异步的概念
摘要:为了提高CPU的使用效率、支持多任务操作,操作系统中引入了并发技术。 所谓并发是指系统中的多个程序或程序段能够同时执行,这里的同时执行并不是指某一个时刻多段程序在同进执行(除非有多个CPU),而是CPU能把时间分给不同的程序段。比如前面等待I/O的例子,若采用并发技术,当一个程序在等待I/O时,系统 阅读全文
posted @ 2018-05-30 14:50 Python哥 阅读(455) 评论(0) 推荐(0)
threading 多线程类继承方式调用
摘要:import threading #线程import timeclass Work(threading.Thread): def __init__(self,n): threading.Thread.__init__(self) #改写父类init方法 并把self 传递过去 self.n = n 阅读全文
posted @ 2018-05-30 10:35 Python哥 阅读(272) 评论(0) 推荐(0)
setDaemon 守护线程
摘要:setDaemon(True): 将线程声明为守护线程,必须在start() 方法调用之前设置, 如果不设置为守护线程程序会被无限挂起。这个方法基本和join是相反的。 当我们 在程序运行中,执行一个主线程,如果主线程又创建一个子线程,主线程和子线程 就分兵两路,分别运行,那么当主线程完成 想退出时 阅读全文
posted @ 2018-05-29 20:06 Python哥 阅读(724) 评论(0) 推荐(0)
for 没有作用域的说话
摘要:for i in range(10): passprint(i) 打印的结果就是9 打印的最后一次结果 阅读全文
posted @ 2018-05-29 17:54 Python哥 阅读(170) 评论(0) 推荐(0)
threading join用法
摘要:运行的结果是: Beijing time is start 2018-05-29 17:37:18 Shanghai time is start 2018-05-29 17:37:18 Beijing time is over 2018-05-29 17:37:20 Done Shanghai ti 阅读全文
posted @ 2018-05-29 17:42 Python哥 阅读(958) 评论(0) 推荐(0)
threading 多线程使用
摘要:实例 1import threading #线程import timedef Say(n): print('Test %d' %n) time.sleep(2)if __name__ == '__main__': t1 = threading.Thread(target=Say,args=(10,) 阅读全文
posted @ 2018-05-29 17:24 Python哥 阅读(197) 评论(0) 推荐(0)
线程概念
摘要:什么是线程: 大白话;进程是一个具体的应用程序,线程是进程中的一个分支,为单独完成程序中的某一项或一组功能而存在。应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程 前提: 1 我们有了进程概念后,不同程序之间完成切换,我们可以浏览网页 听歌等其他操作, 2 但是现在有另外 阅读全文
posted @ 2018-05-29 15:26 Python哥 阅读(166) 评论(0) 推荐(0)
操作系统切换CPU的方式
摘要:操作系统切换CPU的方式 1 IO等待切换. 2 时间轮询切换,也就是如果没有IO等待的情况下,就会有时间轮询切换,不让CPU一直处理一个任务 CPU的处理速度是纳秒级别的,所有我们可以同时听歌,看电影,浏览网页,其实这过程中,CPU 不断在切换,因为CPU处理速度实在太快,以至于我们人感官不出来中 阅读全文
posted @ 2018-05-29 15:02 Python哥 阅读(957) 评论(0) 推荐(0)
操作系统的简单历史(多道程序设计)
摘要:多道程序设计, 用于解决顺序执行的问题: 真空管与穿孔卡片(无操作系统,也就是第一代操作系统) 在以前第一代计算机,处理任务,用的是卡片的方式,需要 输入 处理 输出 三部分组成 任务1卡片放入输入设备 然后到处理设备, 处理完成后,到输出设备打印结果,这时候如果有多个任务,就需要排队等待,比如这时 阅读全文
posted @ 2018-05-29 10:21 Python哥 阅读(518) 评论(0) 推荐(0)
进程概念
摘要:进程:本质上就是一段程序的运行过程(进程本身是一个抽象的概念) 假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源。是不是在程序A读取数据的过程中,让程序B去执行,当程序A读取完数 阅读全文
posted @ 2018-05-25 18:49 Python哥 阅读(156) 评论(0) 推荐(0)
subprocess
摘要:import subprocessres = subprocess.Popen('dir',shell=True,stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)print(res.stdout.read().d 阅读全文
posted @ 2018-05-25 11:16 Python哥 阅读(130) 评论(0) 推荐(0)
字符编码转换
摘要:什么是字符:字符编码(英语:Character encoding)也称字集码.大白话就是字符对应的0101这样的数字 就是字符跟数字一一对应的关系 比如:hello h --> 0101010 e --> 0101101 l --> 10101010 以上就是字符编码的表现形式 字符编码的发展史与分 阅读全文
posted @ 2018-05-23 10:01 Python哥 阅读(685) 评论(0) 推荐(0)
Socket 网络编程
摘要:socket是什么 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。所以,我们无需深入理 阅读全文
posted @ 2018-05-22 20:15 Python哥 阅读(169) 评论(0) 推荐(0)
异常处理
摘要:inp = input(">>>>>")try: r = int(inp) print(r)except Exception as e: print(e)else: print("try内代码没有异常就执行else")finally: print("上面执行结果对错,我都执行")主动触发异常raise try: raise KeyError('错误')ex... 阅读全文
posted @ 2018-05-22 17:10 Python哥 阅读(76) 评论(0) 推荐(0)

上一页 1 2 3 4 下一页