摘要: from threading import Thread,current_thread import time def task(): print('%s is running' %current_thread().name) time.sleep(3) print('%s is done' %cu 阅读全文
posted @ 2018-11-13 19:32 萤huo虫 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 锁: from threading import Thread,Lock # 创建一个互斥锁 mutex = Lock() def task1(): # 锁定 mutex.acquire() for i in range(100): print(" ") # 打开 mutex.release() d 阅读全文
posted @ 2018-11-09 19:51 萤huo虫 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 线程理论: 线程 VS 进程: 线程 和进程的区别 进程是一个资源单位 一个进程可以包含多个线程 多个线程之间数据可以共享 线程开销比进程小 在多线程中CPU的切换速度会非常快 但资源消耗没有进程高怎样开启线程: 守护线程: 常用方法: 启动线程的另一种方式: 阅读全文
posted @ 2018-11-09 19:43 萤huo虫 阅读(196) 评论(0) 推荐(0) 编辑
摘要: """ IPC 指的是进程间通讯 之所以开启子进程 肯定需要它帮我们完成任务 很多情况下 需要将数据返回给父进程 然而 进程内存是物理隔离的 解决方案: 1.将共享数据放到文件中 就是慢 2.管道 subprocess中的那个 管道只能单向通讯 必须存在父子关系 3.共享一块内存区域 得操作系统帮你分配 速度... 阅读全文
posted @ 2018-11-08 21:49 萤huo虫 阅读(162) 评论(0) 推荐(0) 编辑
摘要: """ 抢票! 多个用户在同时读写同一个数据 """ from multiprocessing import Process,Lock import json,time,random # 查看余票 def show_ticket(name): time.sleep(random.randint(1,3)) with open(r"ticket.json","... 阅读全文
posted @ 2018-11-08 21:46 萤huo虫 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 结果: 由于数量庞大就不全部写出来了大概就是 : 先 打印 " " 再打印 " " 最后打印" " 阅读全文
posted @ 2018-11-08 21:44 萤huo虫 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 假如端口被socket使用过,并且利用socket.close()来关闭连接,但此时端口还没有释放,要经过一个TIME_WAIT的过程之后才能使用,这是TNN的相当烦银的,为了实现端口的马上复用,可以选择setsockopt()函数来达到目的。(以下是网上找到的一篇文章的一小段相关例子,试用之后,相 阅读全文
posted @ 2018-11-07 22:43 萤huo虫 阅读(681) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2018-11-07 20:59 萤huo虫 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 僵尸进程:会占用系统进程PID号(每个系统PID数量都是有限的) 一个进程任务执行完就死亡了 但是操作系统不会立即将其清理 为的是 开启这个子进程的父进程可以访问到这个子进程的信息 这样的 任务完成的 但是没有被操作系统清理的进程称为僵尸进程 越少越好孤儿进程 无害! 没有爹的称为孤儿 一个父进程已 阅读全文
posted @ 2018-11-07 20:41 萤huo虫 阅读(141) 评论(0) 推荐(0) 编辑
摘要: from multiprocessing import Process import time def task(name): print("start",name) time.sleep(5) print("stop",name) if __name__ == '__main__': p = Process(target=task,args=("jerr... 阅读全文
posted @ 2018-11-07 20:37 萤huo虫 阅读(166) 评论(0) 推荐(0) 编辑