前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python多线程多进程处理

python多线程多进程处理

原创
作者头像
用户4363240
修改2020-03-23 14:39:33
3930
修改2020-03-23 14:39:33
举报
文章被收录于专栏:VisonVison

concurrent.futures的ThreadPoolExecutor 多线程处理

option: 以list形式保存结果,顺序与输入的list对应

代码语言:txt
复制
from concurrent.futures import ThreadPoolExecutor

def add_f(x,y):
    # operations
    print(x+y)
    
    # return values
    return x+y

param_list1 = []
param_list2 = []
for i in range(60):
    param_list1.append(i)
    param_list2.append(i+1)
    
# # single thread
# for param1, param2 in param_list:
#    add_f(param1, param2)
   
with ThreadPoolExecutor(max_workers=30) as executor:
    res = list(executor.map(add_f, param_list1, param_list2))
    
    # if the function add_f has no need to save return values
    # executor.map(add_f, param_list1, param_list2)

subprocess模块 多进程处理

以list形式将命令存在command变量作为输入

e.g. 解压视频为图片

代码语言:txt
复制
import subprocess
import os

video_path = '/home/xxx/test.mp4'
output_dir = '/home/xxx'
command = 'ffmpeg -f rawvideo -vcodec rawvideo -r 10 -s 1280x800 -pix_fmt yvyu422 -i'.split()
command.append(str(video_path))
path_stem = os.path.splitext(os.path.basename(video_path))[0]
command.append(os.path.join(output_dir, path_stem + '-%4d.png'))
# command = 
# ['ffmpeg',
#  '-f',
#  'rawvideo',
#  '-vcodec',
#  'rawvideo',
#  '-r',
#  '10',
#  '-s',
#  '1280x800',
#  '-pix_fmt',
#  'yvyu422',
#  '-i',
# '/home/xxx/test.mp4',
# '/home/xxx/test-%4d.png']
p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.wait()

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • concurrent.futures的ThreadPoolExecutor 多线程处理
  • subprocess模块 多进程处理
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档