暂停Python中的进程或线程

2024-10-04 01:34:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个小的音频播放器,可以在我指定的网站上查找有声读物的一章,下载并播放。唯一的问题是,我不能停下来。要播放我使用的mp3文件os.system("afplay chapter.mp3")

我曾考虑过创建一个包含os.system调用的线程,但我很确定不能这样暂停它。如果线程是一个循环,我可以锁定它需要访问的变量,然后在我准备继续时解锁它。但由于这个线程只是一行代码,所以看起来不太可能。我还研究了如何创建一个进程并将SIGSTOP发送给它。但不知为什么这行不通。在

import os, signal
from multiprocessing import Process

p = Process(target=play)
p.start()
raw_input("press enter to pause: ")
os.kill(p.pid, signal.SIGSTOP)

代码只是默默地执行而不停止进程。在

我知道除了afplay还有其他的选择,但现在我只想坚持操作系统打电话。所以我的问题是,如何暂停一行线程或进程?我不需要用process()调用创建一个新进程,而是需要找到afplay的进程id吗?如果是,怎么办?在


Tags: 代码importsignal进程os网站音频播放器
2条回答

os.system创建子进程并等待该子进程退出。您可以使用^{}将一个进程替换为另一个程序,或者使用^{}创建一个子进程,您可以用^{}找到的pid。在

为什么不直接使用subprocess模块而不是subprocess和操作系统?这样可以更好地控制派生的进程。在

相关问题 更多 >