随笔分类 -  python 并发编程

摘要:队列介绍 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的 创建队列的类(底层就是以管道和锁定的方式实现) 制定队列最大大小 参数介绍: 主要方法介绍: 1.队列里面不应该放入大数据, 放小数据 2.队列不指定 阅读全文
posted @ 2019-06-18 17:27 minger_lcm 阅读(1355) 评论(0) 推荐(1) 编辑
摘要:抢票是并发执行 多个进程可以访问同一个文件 多个进程共享同一文件,我们可以把文件当数据库,用多个进程模拟多个人执行抢票任务 db.txt 并发运行,效率高,但竞争写同一文件,数据写入错乱,只有一张票,都卖成功给了10个人 总结:程序出现数据写入错乱 大家都查到票为1,都购票成功 加锁处理:购票行为由 阅读全文
posted @ 2019-06-18 17:26 minger_lcm 阅读(754) 评论(0) 推荐(0) 编辑
摘要:互斥锁与join 互斥锁和join都可以把并发变成串行 以下代码是用join实现串行 执行结果 发现使用join将并发改成串行,确实能保证数据安全, 但join会把 ,整个程序所有进程都变成串行, 连查看都变成串行了 但问题是连查票操作,也变成只能一个一个人去查了,很明显大家查票时应该是并发地去查询 阅读全文
posted @ 2019-06-18 17:26 minger_lcm 阅读(264) 评论(0) 推荐(0) 编辑
摘要:python 并发编程 多进程 互斥锁 模拟抢票 互斥锁与join区别 阅读全文
posted @ 2019-06-17 19:15 minger_lcm 阅读(188) 评论(0) 推荐(0) 编辑
摘要:运行多进程 每个子进程的内存空间是互相隔离的 进程之间数据不能共享的 一 互斥锁 但是进程之间都是运行在一个操作系统上,进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端, 是可以的,而共享带来的是竞争,竞争带来的结果就是错乱 如何控制,就是加锁处理。而互斥锁的意思就是 阅读全文
posted @ 2019-06-17 18:58 minger_lcm 阅读(1816) 评论(0) 推荐(0) 编辑
摘要:一 守护进程 主进程创建子进程目的是:主进程有一个任务需要并发执行,那开启子进程帮我并发执行任务 主进程创建子进程,然后将该进程设置成守护自己的进程 关于守护进程需要强调两点: 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError 阅读全文
posted @ 2019-06-17 18:57 minger_lcm 阅读(1738) 评论(0) 推荐(0) 编辑
摘要:进程对象的其他方法一: terminate与is_alive is_alive() 立刻查看的子进程结果 是否存活 terminate() 关闭子进程,这种也是给操作系统发送信号和start 一样 子进程还活着 关闭子进程,把内存空间回收,是操作系统做的,但是什么时候关闭进程的时间就不知道了 ter 阅读全文
posted @ 2019-06-17 17:16 minger_lcm 阅读(1038) 评论(0) 推荐(0) 编辑
摘要:一 Process对象的join方法 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一: 在主进程的任务与子进程的任务彼此独立的情况下,主进程的任务先执行完毕后,主进程还需要等待子进程执行完毕,然后统一回收资源。 这种是没有join方 阅读全文
posted @ 2019-06-17 14:43 minger_lcm 阅读(802) 评论(0) 推荐(0) 编辑
摘要:python multiprocessing模块 介绍 python 开启进程两种方法 python 并发编程 查看进程的id pid与父进程id ppid python 并发编程 多进程 Process对象的其他属性方法 join 方法 python 并发编程 多进程 Process对象的其他属性 阅读全文
posted @ 2019-06-15 22:52 minger_lcm 阅读(292) 评论(0) 推荐(0) 编辑
摘要:一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启 阅读全文
posted @ 2019-06-15 22:51 minger_lcm 阅读(2012) 评论(0) 推荐(0) 编辑
摘要:查看进程id pid 不需要传参数 查看父进程id ,和子进程id 阅读全文
posted @ 2019-06-15 22:50 minger_lcm 阅读(5562) 评论(0) 推荐(0) 编辑
摘要:一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启 阅读全文
posted @ 2019-06-15 22:50 minger_lcm 阅读(6103) 评论(0) 推荐(0) 编辑
摘要:一 什么是进程 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 二 进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 三 并发与并行 无论是并行还是并发,在用户看来都是'同时'运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这 阅读全文
posted @ 2019-06-15 19:16 minger_lcm 阅读(260) 评论(0) 推荐(0) 编辑
摘要:操作系统介绍 操作系统发展史 进程理论 多进程 多线程 协程 io模型 阅读全文
posted @ 2019-06-14 19:36 minger_lcm 阅读(196) 评论(0) 推荐(0) 编辑
摘要:一、为什么要有操作系统 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。 一般而言,现代计算机系统是一个复杂的系统。 其二:并且管理这些部件并加以优化使用,是一件极富挑战性的工作,于是,计算安装了一层软件(系统软件),称为操作系统。 阅读全文
posted @ 2018-06-06 22:56 minger_lcm 阅读(238) 评论(0) 推荐(0) 编辑
摘要:第一代计算机(1940~1955):真空管和穿孔卡片 第一代计算机的产生背景: 第一代之前人类是想用机械取代人力,第一代计算机的产生是计算机由机械时代进入电子时代的标志,从Babbage失败之后一直到第二次世界大战,数字计算机的建造几乎没有什么进展,第二次世界大战刺激了有关计算机研究的爆炸性进展。 阅读全文
posted @ 2018-05-24 09:31 minger_lcm 阅读(382) 评论(0) 推荐(0) 编辑