xuhao = [device.split('\t')[0] for device in adb_devices if 'emulator' in device] def main(): jiaoben=index.zhuxunhuanlei() jinchengs=[] for xu in range(len(xuhao)): jincheng=multiprocessing.Process(target=jiaoben.zhuxunhuan,args=(xuhao[xu],)) jinchengs.append(jincheng) jincheng.start() for jincheng in jinchengs: jincheng.join() if name == 'main': multiprocessing.freeze_support() main() 获取子进程的一个参数xuhao并打印

时间: 2024-02-16 11:00:43 浏览: 27
在主进程中,我们创建了多个子进程,每个子进程都有一个参数xuhao,现在需要在主进程中获取这个参数并打印出来。 可以将xuhao作为参数传递给主函数main(),然后在main()函数中打印出来。具体实现如下: ```python import multiprocessing # 假设xuhao是一个全局变量,或者已经在主进程中定义好了 def main(xuhao): jiaoben = index.zhuxunhuanlei() jinchengs = [] for xu in range(len(xuhao)): jincheng = multiprocessing.Process(target=jiaoben.zhuxunhuan, args=(xuhao[xu],)) jinchengs.append(jincheng) jincheng.start() for jincheng in jinchengs: jincheng.join() if __name__ == '__main__': multiprocessing.freeze_support() main(xuhao) print("xuhao参数:", xuhao) ``` 这样就可以在主进程中获取到xuhao参数并打印出来了。
相关问题

xuhao = [device.split('\t')[0] for device in adb_devices if 'emulator' in device] def main(): jiaoben=index.zhuxunhuanlei() jinchengs=[] for xu in range(len(xuhao)): jincheng=multiprocessing.Process(target=jiaoben.zhuxunhuan,args=(xuhao[xu],)) jinchengs.append(jincheng) jincheng.start() for jincheng in jinchengs: jincheng.join() if __name__ == '__main__': multiprocessing.freeze_support() main() 获取子进程的数据并打印

在你的代码中,每个子进程都是在一个新的进程中运行的,因此你需要使用进程间通信来获取子进程的数据。以下是一个示例代码: ```python import multiprocessing import index def run_child_process(device_id, queue): jiaoben = index.zhuxunhuanlei() result = jiaoben.zhuxunhuan(device_id) queue.put(result) def main(): adb_devices = ['emulator-5554\tdevice', 'emulator-5556\tdevice'] device_ids = [device.split('\t')[0] for device in adb_devices if 'emulator' in device] processes = [] results = multiprocessing.Queue() for device_id in device_ids: process = multiprocessing.Process(target=run_child_process, args=(device_id, results)) processes.append(process) process.start() for process in processes: process.join() while not results.empty(): result = results.get() print(result) if __name__ == '__main__': multiprocessing.freeze_support() main() ``` 在这个示例代码中,我们创建了一个`multiprocessing.Queue`对象来存储子进程返回的数据。在每个子进程中,我们将数据加入这个队列中,然后在主进程中使用循环从队列中读取数据并打印。需要注意的是,在使用`multiprocessing.Queue`时,你需要在主进程中先创建队列对象,然后将这个对象传递给每个子进程,在子进程中使用这个对象来存储数据。

subprocess.call('adb start-server') time.sleep(3) # 通过adb命令获取连接设备列表 adb_devices = subprocess.check_output(['adb', 'devices']).decode().split('\n')[1:-2] # 解析设备列表,获取模拟器名称 xuhao = [device.split('\t')[0] for device in adb_devices if 'emulator' in device] def main(xuhao): jiaoben = index.zhuxunhuanlei() jinchengs = [] xxxx = multiprocessing.Manager().Value(int, 0) # 创建共享内存 for xu in range(len(xuhao)): jincheng = multiprocessing.Process(target=jiaoben.zhuxunhuan, args=(xuhao[xu], xxxx)) jinchengs.append(jincheng) jincheng.start() for jincheng in jinchengs: jincheng.join() print("xxxx变量:", xxxx.value) # 在主进程中获取并打印共享内存中的变量 if __name__ == '__main__': multiprocessing.freeze_support() main(xuhao) 子程序如何传数变量 xxxx

在这段代码中,变量 `xxxx` 是通过 `multiprocessing.Manager().Value` 方法创建的共享内存变量,可以在多个进程之间共享。在主进程中创建共享内存变量后,可以将其作为参数传递给子进程的函数,子进程可以通过修改共享内存变量的值来实现数据交互。在这段代码中,子进程函数 `jiaoben.zhuxunhuan` 的定义不在代码中给出,但是可以将 `xxxx` 作为参数传递给该函数,如下所示: ```python def zhuxunhuan(self, xuhao, xxxx): # 子进程操作共享内存变量 xxxx.value += 1 ``` 在子进程中,通过修改共享内存变量 `xxxx` 的值来实现数据交互。注意,在使用共享内存变量时,需要使用 `xxxx.value` 来获取和修改其值,因为共享内存变量是一个代理对象,它的值保存在共享的内存中。

相关推荐

最新推荐

recommend-type

详解OkSocket与Android的简单使用

本篇文章主要介绍了详解OkSocket与Android的简单使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

android手机应用源码Imsdroid语音视频通话源码.rar

android手机应用源码Imsdroid语音视频通话源码.rar
recommend-type

营销计划汇报PPT,市场品牌 推广渠道 产品 营销策略tbb.pptx

营销计划汇报PPT,市场品牌 推广渠道 产品 营销策略tbb.pptx
recommend-type

JavaScript_超过100种语言的纯Javascript OCR.zip

JavaScript
recommend-type

JavaScript_跨平台React UI包.zip

JavaScript
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

可见光定位LED及其供电硬件具体型号,广角镜头和探测器,实验设计具体流程步骤,

1. 可见光定位LED型号:一般可使用5mm或3mm的普通白色LED,也可以选择专门用于定位的LED,例如OSRAM公司的SFH 4715AS或Vishay公司的VLMU3500-385-120。 2. 供电硬件型号:可以使用常见的直流电源供电,也可以选择专门的LED驱动器,例如Meanwell公司的ELG-75-C或ELG-150-C系列。 3. 广角镜头和探测器型号:一般可采用广角透镜和CMOS摄像头或光电二极管探测器,例如Omron公司的B5W-LA或Murata公司的IRS-B210ST01。 4. 实验设计流程步骤: 1)确定实验目的和研究对象,例如车辆或机器人的定位和导航。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。