python 编程之博望3把火-1

python 编程之博望3把火-1

ID:32368870

大小:648.24 KB

页数:23页

时间:2019-02-03

python 编程之博望3把火-1_第1页
python 编程之博望3把火-1_第2页
python 编程之博望3把火-1_第3页
python 编程之博望3把火-1_第4页
python 编程之博望3把火-1_第5页
资源描述:

《python 编程之博望3把火-1》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、python编程之博望3把火-进程、线程raymond2014-04大纲上回习题讲解进程及线程简介Python多进程Python多线程习题Q&A习题-1pythonfileA.py的输出fileA.py:fileB.py:importfileBimportfileAname=1name=2print11,nameprint22,name多个模块间如何传输内存数据?习题-2计算一个文本文件(.txt)的行数,字符数,写到res.txt中,格式为1行:filename:linecount,charactercoun

2、t计算一个目录下所有文本文件的行数,字符数,写到res.txt中–提示:1、使用os模块进行目录遍历–2、需要考虑子目录情况附加题:请设计用例测试上述程序进程-1什么是进程?(process)–程序的一个运行实例–进程是操作系统分配资源的最小单元–由代码(堆栈段),数据(数据段)和进程控制块构成进程的状态及优先级–new, ready, run, block, dead –nice(linux)父子进程–fork –exec#include#include#include

3、ng.h>#include#include#include#includeintglob=6;//heapintmain(void){intvar;//stackpid_tpid;beforeforkvar=88;pid=430,glob=7,var=89pid=429,glob=6,var=88printf("beforefork");/*wedon'tflushstdout*/if((pid=fork())<0){err_sys("f

4、orkerror");}elseif(pid==0){/*child*/glob++;/*modifyvariables*/var++;}else{sleep(2);/*parent*/}printf(“pid=%d,glob=%d,var=%d”,getpid(),glob,var);exit(0);}进程-2进程间通信方式–文件–管道–socket–信号–信号量–共享内存线程的状态及优先级–new, ready, run, block, dead 线程-1什么是线程?(thread)–线程是操作系统任务调度的最小单

5、元,一个进程可以包含多个线程,至少需要一个主线程–由线程ID,程序计数器,寄存器和栈构成–共享代码段,数据段等进程的状态及优先级–new, ready, run, block, dead 主进程进程、线程区别地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信,但需通过线程同步和互斥来保证数据的一致性。调度和切换:线程上下文切换比进程上下文切换要快得多。比喻Python中的进程ossubprocessprocessi

6、ngmultiprocessingPython中的进程-osforksystemimportosos.fork()os.system('pwd')subprocess执行一个命令获得返回值importsubprocessreturnCode=subprocess.call(‘ls-l')printreturnCode执行一个命令获得标准输出importsubprocessp=subprocess.Popen(“ls-l",stdin=subprocess.PIPE,/stdout=subprocess.PIPE,std

7、err=subprocess.PIPE,shell=True)p.wait()printp.returnCode,p.stdout.read()multiprocessing多进程并发linux版本importtimefrommultiprocessingimportPooldefrun(fn):time.sleep(2)printfntestFL=[1,2,3,4,5]pool=Pool(10)pool.map(run,testFL)pool.close()pool.join()multiprocessing多进程并发wi

8、ndows版本importtimefrommultiprocessingimportPooldefrun(fn):time.sleep(2)printfnif__name__=="__main__":testFL=[1,2,3,4,5]pool=Pool(10)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。