多线程开发
创始人
2025-05-29 18:05:24

文章目录

        • 多线程开发
          • 1. Thread创建多线程
          • 2. ThreadPoolExecutor创建进程池
            • as_completed()
            • map()

多线程开发

  1. 一个进程中可以包含多个线程
  2. 线程也是一个运行行为,消耗计算机资源
  3. 一个进程中的所有线程共享这个进程的资源
  4. 多个线程之间的运行互不影响各自运行
  5. 线程的创建和销毁消耗资源远小于进程
  6. 各个线程也有自己的ID等特征
1. Thread创建多线程
import time
from threading import Threaddef count(x):time.sleep(x)start = time.time()jobs = []
for i in range(5):t = Thread(target=count, args=(i,))jobs.append(t)t.start()for i in jobs:i.join()print("用时:", time.time() - start)
2. ThreadPoolExecutor创建进程池
from concurrent.futures import ThreadPoolExecutor
import time# 构造线程池实例,传入max_workers可以设置线程池中最多能同时运行的线程数目
pool = ThreadPoolExecutor(max_workers=2)def task(i):print('线程名称:%s' % i)time.sleep(2)  # 定义睡眠时间for i in range(5):  # 创建十个任务# submit() 提交线程需要执行的任务(函数名和参数)到线程池中,立刻返回一个future对象。future1 = pool.submit(task, i)# 取task的执行结果print(future1.result())# 取消该 Future 代表的线程任务。如果该任务正在执行,不可取消,则该方法返回 False;否则,程序会取消该任务,并返回 True。print(future1.cancel())# 返回 Future 代表的线程任务是否被成功取消。print(future1.cancelled())print(future1.running())
as_completed()
from concurrent.futures import ThreadPoolExecutor, as_completed
import time
import random
import threading# 构造线程池实例,传入max_workers可以设置线程池中最多能同时运行的线程数目
pool = ThreadPoolExecutor(max_workers=2)# def task(i):
#     print('线程名称:%s' % i)
#     time.sleep(2)  # 定义睡眠时间def task(i):sleep_seconds = random.randint(1, 3)  # 随机睡眠时间print('线程名称:%s,参数:%s,睡眠时间:%s' % (threading.current_thread().name, i, sleep_seconds))time.sleep(sleep_seconds)  # 定义睡眠时间all_task = [pool.submit(task, i) for i in range(5)]for future in as_completed(all_task):data = future.result()print(data)
map()
from concurrent.futures import ThreadPoolExecutor, as_completed
import time
import random
import threading# 构造线程池实例,传入max_workers可以设置线程池中最多能同时运行的线程数目
pool = ThreadPoolExecutor(max_workers=2)# def task(i):
#     print('线程名称:%s' % i)
#     time.sleep(2)  # 定义睡眠时间def task(i):sleep_seconds = random.randint(1, 3)  # 随机睡眠时间print('线程名称:%s,参数:%s,睡眠时间:%s' % (threading.current_thread().name, i, sleep_seconds))time.sleep(sleep_seconds)  # 定义睡眠时间# 向线程池提交5个任务
x = range(5)
for i in pool.map(task, x):print('successful')

相关内容

热门资讯

猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...