from multiprocessing import Processprocess = Process(target=函数,name=进程的名字,args=(给函数传递的参数))process.start() 启动进程并执行任务process.run() 只是执行了任务但是没有启动进程process.terminate() 终止进程
import threadingfrom multiprocessing import Processfrom multiprocessing.pool import Poolfrom multiprocessing.queues import Queuefrom threading import Thread, Lockfrom time import sleepdef task1(s): while True: print('这是任务1') sleep(s)def task2(s): while True: print('这是任务2') sleep(s)if __name__ == '__main__': p1 = Process(target=task1, args=(1,)) p1.start() p2 = Process(target=task2, args=(2,)) p2.start()# 进程,线程# Process类# 创建进程def func(n): passp = Process(target=func, name='', args=(), kwargs='')p.start()# 自定义进程class MyProcess(Process): def run(self): passp = MyProcess()p.start()# 进程数据共享:n = 0# 进程池:Poolp = Pool(5)# 阻塞式 apply(func,args,kwargs)# 非阻塞式 apply_async(func,args,kwargs,callback=函数)# 进程间通信q = Queue(4)q.put() # 放数据q.get() # 取数据q.qsize() # 获取队列中的数据个数q.empty() # 判断队列是否为空q.full() # 判断队列是否已经满了# 线程t = Thread(target=func, name='', args=(), kwargs='')t.start()# GIL:全局解释器锁# Python中的线程是伪线程# 线程同步lock = Lock()List1 = [0] * 10def task1(): # 获取线程锁,如果已经上锁了,则等待锁的释放 lock.acquire() # 请求锁 for i in range(len(List1)): List1[i] = 1 sleep(0.5) lock.release() # 释放锁def task2(): lock.acquire() for i in range(len(List1)): print('---->', List1[i]) sleep(0.5) lock.release()if __name__ == '__main__': t1 = threading.Thread(target=task1) t2 = threading.Thread(target=task2) t2.start() t1.start() t2.join() t1.join() print(List1)
总结 以上是内存溢出为你收集整理的Python中的进程和线程全部内容,希望文章能够帮你解决Python中的进程和线程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)