美文网首页
第2节linux系统编程

第2节linux系统编程

作者: 冰_Angus | 来源:发表于2017-12-05 06:23 被阅读0次

linux下申请子线程

创建

import os

rpid = os.fork()  #父程序得到子程序的id  子线程为0

getpid()、getppid()

跨平台进程

可以用CLass继承 Process  写run方法

进程池Pool

重点:

po.apply(worker,(i,))  堵塞式添加,优先度相对于apply_async,优先度最高。

进程间通信-Queue

process之间用 q = Queue()

pool通信用 q = Manager().Queue()

多线程-threading

t = threading.Thread(target=saySorry)

t.start() #启动线程,即让线程开始执⾏

主线程会等待所有的⼦线程结束后才结束

length = len(threading.enumerate())

#创建锁

mutex = threading.Lock()

#锁定

mutex.acquire([blocking])

#释放

mutex.release()

ThreadLocal

⼀个ThreadLocal变量虽然是全局变量,但每个线程都只能读写⾃⼰线程的独⽴副本,互不⼲扰。ThreadLocal解决了参数在⼀个线程中各个函数之间互相传递的问题。

python中的线程是假线程实际上有个叫GIL(全剧解释其锁)的模块控制程序只占用一核。如果要做到真正的多线程,还要考虑使用别的语言一起做。

相关文章

网友评论

      本文标题:第2节linux系统编程

      本文链接:https://www.haomeiwen.com/subject/dllfixtx.html