import os
import time
ret = os.fork() # 创建子线程 if ret ==0: # 子进程中返回值为0,父进程>0
while True:
print('......1......')
time.sleep(1) else:
while True:
print('......2......')
time.sleep(1)

多fork问题,以下代码会出现4个进程

import os
import time
ret = os.fork() if ret ==0:
print('......1......') else:
print('......2......') ret = os.fork() if ret ==0:
print('......11......') else:
print('......22.....')

import os
import time
ret = os.fork() if ret ==0:
print('......1......') else:
print('......2......') ret = os.fork() if ret ==0:
print('......11......') else:
print('......22.....')

进程间通信

进程之间默认无关联

普通进程间通信用 Queue队列

进程池中用Manager().Queue()

q.qsize()

q.full()

q.empty()

q.put()

q.get()

q.put_nowait()

q.get_nowait()

多进程文件拷贝案例

from multiprocessing import Pool,Manager
import os def copyFileName(name,oldFolderName,newFolderName,queue):
'完成copy一个文件的功能'
fr = open(oldFolderName + '/' + name)
fw = open(newFolderName + '/' + name,'w') content = fr.read()
fw.write(content) fr.close()
fw.close() queue.put(name) def main(): # 0,获取永远要copy的文件夹名字
oldFolderName = input('请输入文件夹的名字:') # 1.创建一个文件夹
newFolderName = oldFolderName + '-复件'
os.mkdir(newFolderName) # 2.获取old文件夹中所有文件的名字
fileNames = os.listdir(oldFolderName) # 3.使用多进程的方式copy原文件夹中所有文件到新的文件夹中
pool = Pool(5) #创建队列,计数
queue = Manager().Queue() for name in fileNames:
pool.apply_async(copyFileName,args=(name,oldFolderName,newFolderName,queue)) num = 0
allNum = len(fileNames)
while num<allNum:
queue.get()
num += 1
copyRate = num/allNum
print('\rcopy的进度是:%.2f%%'%(copyRate*100),end='') print('\n已完成拷贝。。。。。') if __name__ == '__main__':
main()

python 进程复习的更多相关文章

  1. Python并发复习1 - 多线程

    一.基本概念 程序: 指令集,静态, 进程: 当程序运行时,会创建进程,是操作系统资源分配的基本单位 线程: 进程的基本执行单元,每个进程至少包含一个线程,是任务调度和执行的基本单位 > 进程和 ...

  2. Python并发复习2 - 多线程模块threading

    一.多线程的调用 threading 模块建立在thread 模块之上.thread模块以低级.原始的方式来处理和控制线程,而threading 模块通过对thread进行二次封装, 提供了更方便的a ...

  3. python——进程基础

    我们现在都知道python的多线程是个坑了,那么多进程在这个时候就变得很必要了.多进程实现了多CPU的利用,效率简直棒棒哒~~~ 拥有一个多进程程序: #!/usr/bin/env python #- ...

  4. 使用gdb调试Python进程

    使用gdb调试Python进程 有时我们会想调试一个正在运行的Python进程,或者一个Python进程的coredump.例如现在遇到一个mod_wsgi的进程僵死了,不接受请求,想看看究竟是运行到 ...

  5. python进程、线程、协程(转载)

    python 线程与进程简介 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资 ...

  6. Python进程、线程、协程详解

    进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配.任务的调度. ...

  7. python进程池剖析(一)

    python中两个常用来处理进程的模块分别是subprocess和multiprocessing,其中subprocess通常用于执行外部程序,比如一些第三方应用程序,而不是Python程序.如果需要 ...

  8. python——进程、线程、协程

    Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/usr/bin/env pytho ...

  9. python/进程线程的总结

    python/进程线程的总结 一.进程和线程的描述: 进程:最小的资源管理单位 线程:最小的执行单位 执行一个进程时就默认执行一个线程(主线程) 进程和线程的工作方式: 串行: 假如共有A.B.C任务 ...

随机推荐

  1. RobotFramework自动化测试框架-移动手机自动化测试Get Network Connection Status和Set Network Connection Status关键字的使用

    Get Network Connection Status关键字用来获取手机的网络连接状态.在获取到连接状态后,会返回不同的数字. Set Network Connection Status关键字用来 ...

  2. 第十篇:Map/Reduce 工作机制分析 - 数据的流向分析

    前言 在MapReduce程序中,待处理的数据最开始是放在HDFS上的,这点无异议. 接下来,数据被会被送往一个个Map节点中去,这也无异议. 下面问题来了:数据在被Map节点处理完后,再何去何从呢? ...

  3. 【BZOJ1926】粟粟的书架(主席树,前缀和)

    [BZOJ1926]粟粟的书架(主席树,前缀和) 题面 Description 幸福幼儿园 B29 班的粟粟是一个聪明机灵.乖巧可爱的小朋友,她的爱好是画画和读书,尤其喜欢 Thomas H. Co ...

  4. 【BZOJ1585】【Luogu2944】地震损失2(网络流)

    [BZOJ1585][Luogu2944]地震损失2(网络流) 题面 题目描述 Wisconsin has had an earthquake that has struck Farmer John' ...

  5. 【Luogu3478】【POI2008】STA-Station(动态规划)

    [Luogu3478][POI2008]STA-Station(动态规划) 题面 题目描述 给出一个\(N(2<=N<=10^6)\)个点的树,找出一个点来,以这个点为根的树时,所有点的深 ...

  6. [BZOJ4872][六省联考2017]分手是祝愿

    BZOJ Luogu sol 首先发现肯定有解,又因为每个位置至多操作一次,所以最优解一定是在\([0,n]\)之间 有一种可以在\(O(\sum_{i=1}^{n}\lfloor\frac{n}{i ...

  7. [TJOI2015]旅游

    树链剖分+线段树 线段树维护max,min,左往右的最大差,右往左的最大差 求LCA时一定要注意方向 # include <bits/stdc++.h> # define RG regis ...

  8. c#抽取pdf文档标题(2)

    public class IETitle { public static List<WordInfo> WordsInfo = new List<WordInfo>(); pr ...

  9. scala开发环境安装

    安装JDK    java 运行环境 ,这里不详说了,熟悉java的朋友应该都会,我们主要关注下Scala的安装. 安装scala    1.下载scala    http://yunpan.cn/c ...

  10. python 全栈开发,Day4

    python之文件操作 一.文件操作基本流程 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到 ...