wcq15759797758 发表于 2021-7-25 15:15:44

python 线程与进程

本帖最后由 wcq15759797758 于 2021-7-25 16:12 编辑

一.单进程单线程
import time
def work(n):
    print(f'{n}打电话')
    time.sleep(2)
    print(f'{n}电话结束')
uesrlist = ['刘德华','张学友','梁朝伟']
for i in uesrlist:
    work(i)

二.多进程
from multiprocessing import Process
import time,os

uesrlist = ['刘德华','张学友','梁朝伟']

def work(n):
    print(f'{n}打电话,进程号为:{os.getpid()}')
    time.sleep(2)
    print(f'{n}电话结束,进程号为:{os.getpid()}')

def pol():
    plist = []
    for item in uesrlist:
      #循环创建进程   target 当前要执行的函数
      p = Process(target=work,args=(item,))
      #启动进程
      p.start()
      #把进程加入到列表当中
      plist.append(p)
    #阻塞终止进程的执行
   

if __name__ == '__main__':
    pol()

三.多线程
import time ,os
import threading

uesrlist = ['刘德华','张学友','梁朝伟']

def work(n):
    print(f'{n}打电话,进程号为:{os.getpid()},线程号为:{threading.current_thread()}')
    time.sleep(2)
    print(f'{n}电话结束,进程号为:{os.getpid()},线程号为:{threading.current_thread()}')

def pol():
    plist = []
    for item in uesrlist:
      #循环创建线程    target 当前要执行的函数
      p = threading.Thread(target=work,args=(item,))
      #生成线程
      p.start()
      #把进程加入到列表当中
      plist.append(p)
    #阻塞终止线程的执行
   

if __name__ == '__main__':
    pol()

四.线程池
import time
import threading
from concurrent.futures import ThreadPoolExecutor

uesrlist = ['刘德华','张学友','梁朝伟','周杰伦','苏炳添']

def work(n):
    print(f'{n}打电话,线程号为:{threading.current_thread()}')
    time.sleep(2)
    print(f'{n}电话结束,线程号为:{threading.current_thread()}')

def pol():
    # 1 . 创建线程池
    pool = ThreadPoolExecutor(max_workers=3)
    # 2 . 循环指派任务 和参数
   
    # 3 . 关闭线程池
    pool.shutdown

if __name__ == '__main__':
    pol()

hornwong 发表于 2021-7-25 18:34:59

感谢分享!

超级玛尼哄 发表于 2021-7-26 00:11:58

学习学习

小超超超 发表于 2021-7-26 02:57:32

{:9_228:}

鸬鹚鸟 发表于 2021-7-26 09:07:42

感激不尽

Kayko 发表于 2021-7-26 09:14:16

{:10_254:}

waixiong 发表于 2021-7-26 14:49:41

谢谢

fxj2002 发表于 2021-7-26 14:52:07

{:5_109:}

龖釋 发表于 2021-7-26 16:14:14

学习
页: [1]
查看完整版本: python 线程与进程