python - python:等到一个函数完成
问题描述
我的脚本由几个函数组成,这些函数在执行时间方面执行相对较长的 bash 命令(检索 suid 二进制文件列表、检索多个文件等)。
我已经链接了这些函数以通过多处理执行它们,如下所示:
def main_f():
queue=Queue()
proc10= multiprocessing.Process(target=verify_defenses)
proc2 = multiprocessing.Process(target=useful_software)
proc3 = multiprocessing.Process(target=process)
proc4 = multiprocessing.Process(target=start_suid)
proc6 =multiprocessing.Process(target=path)
proc7 =multiprocessing.Process(target=writable_directories)
proc8 =multiprocessing.Process(target=authorized_exec)
proc9 =multiprocessing.Process(target=crontab)
proc1 =multiprocessing.Process(target=enum_users)
proc11 = multiprocessing.Process(target=network_interface)
proc12 =multiprocessing.Process(target=check_write)
proc13 = multiprocessing.Process(target=search_files)
proc_tab = [proc1, proc2,.... ("speed" tasks)]
for p in proc_tab:
p.start()
for p in proc_tab:
p.join()
//"slow" tasks
proc4.start()
proc4.join()
proc_x.start()
proc_x.join(), etc
我的问题是多处理“执行”函数太快,以至于他们没有时间完成工作(例如,由于没有时间,返回 suid 的函数什么也不返回):我该怎么做才能让多处理等到我的函数在继续执行下一个函数之前已完成执行?
解决方案
推荐阅读
- c - scanf 子进程后的垃圾值
- asp.net-mvc - 运行从github下载的项目
- sql-server - 启动SSIS包时不支持包部分调试
- r - 如何减少 geom_text 标签之间的空间?
- powerbi - Power Bi DAX:重置某个日期之后的值
- java - 如何将动态元数据添加到 Java 中的单例 SLF4J 记录器?
- replace - 读取文本文件中的内容并使用 VBS 将其替换为另一个文本文件中的指定文本
- vb.net - Xamarin iOS Webview 自动执行 OnClientClick()
- python - Jupyter 笔记本安装失败
- javascript - 如何配置 webpack 以将自定义字体加载到故事书中?