python怎么让进程暂停

作者&投稿:纵咸 (若有异议请与网页底部的电邮联系)
python怎么让进程暂停~

您的意思是要将进程挂起(Suspend) 而非 阻塞(Block)
如果用sleep() 进程将阻塞
假设进程下有两个线程 那么这两个线程会继续运行
要使进程挂起 可以考虑使用psutil
import psutil
p = psutil.Process(pid)
p.suspend() #挂起进程
p.resume() #恢复进程



为了证明效果 我写了一个简单的进程Process
其下有两个线程 读者Reader 和 写者Writer(简单的读者写者问题)

Process:
import threading

from time import ctime, sleep
import ThreadInReadAndWriteProblem
import multiprocessing
import os

class Process(multiprocessing.Process):


def __init__(self):
multiprocessing.Process.__init__(self) #手动实现父类
pid = os.getpid()

def run(self):
print '当前运行进程PID : %s ' %self.pid #子线程的id与父进程的pid相同 属于 同一个进程

for i in range(0,5):
r = ThreadInReadAndWriteProblem.Reader()
w = ThreadInReadAndWriteProblem.Writer()
w.start()
r.start()



print '进程阻塞'
sleep(10) #总共运行时间10秒


Reader&Writer
import threading
from time import ctime, sleep
import os

mutex = threading.Lock() #互斥锁
mutex_readercount = threading.Lock() #计数时的互斥 计算当前正在读的数目
readerCount = 0 number = 0

#不满足条件的 进入阻塞状态


class Reader(threading.Thread): #读者
def __init__(self):
threading.Thread.__init__(self) #继承父类构造函数

def run(self):
global mutex
global readerCount
#print '线程PID: %s ' %os.getpid()
while True:
mutex_readercount.acquire()
readerCount +=1
if readerCount == 1:
print '读者进程等待中,编号%s' %(self.name)
mutex.acquire() == False # 第一个需要申请


mutex_readercount.release()
print '开始读 , 读者编号 %s ,现在时间是 %s' %(self.name,ctime())
sleep(2)
print '完成读 , 读者编号 %s , 现在时间是 %s' %(self.name,ctime())

mutex_readercount.acquire()
readerCount -= 1
if readerCount == 0: #所有读者均完成
print '最后一个读者完成读 '
mutex.release()
mutex_readercount.release()




class Writer(threading.Thread): #写者
def __init__(self):
threading.Thread.__init__(self)

def run(self):
global mutex
global writerCount
#print '线程PID: %s' %os.getpid()
while True:
print '写者进程等待中 编号: %s' %(self.name)
mutex.acquire()
print '开始写 编号:%s 现在时间是: %s ' %(self.name,ctime())
sleep(5)
print '结束写 编号: %s 现在时间是 %s' %(self.name,ctime())
mutex.release()

测试程序
import ThreadInReadAndWriteProblem
import SingleProcessSchedulerMultiprocess
import psutil
import Scheduler
from time import ctime, sleep

def main():
p = SingleProcessSchedulerMultiprocess.Process()
p.start()

sleep(3)



stop(p.pid)
print '进程挂起 %s' %ctime()
sleep(5)

wake(p.pid)
print '唤醒进程 %s' %ctime()



def stop(pid):
print '进程暂停 进程编号 %s ' %(pid)
p = psutil.Process(pid)
p.suspend()

def wake(pid):
print '进程恢复 进程编号 %s ' %(pid)
p = psutil.Process(pid)
p.resume()



if __name__ == '__main__':
main()


结果:
当前运行进程PID : 3096
写者进程等待中 编号: Thread-2
开始写 编号:Thread-2 现在时间是: Mon Nov 30 21:12:12 2015
读者进程等待中,编号Thread-1
写者进程等待中 编号: Thread-4
进程阻塞
写者进程等待中 编号: Thread-6
写者进程等待中 编号: Thread-8
写者进程等待中 编号: Thread-10
进程暂停 进程编号 3096
进程挂起 Mon Nov 30 21:12:15 2015
进程恢复 进程编号 3096
唤醒进程 Mon Nov 30 21:12:20 2015
结束写 编号: Thread-2 现在时间是 Mon Nov 30 21:12:20 2015
写者进程等待中 编号: Thread-2
开始读 , 读者编号 Thread-1 ,现在时间是 Mon Nov 30 21:12:20 2015

开始读 , 读者编号 Thread-3 ,现在时间是 Mon Nov 30 21:12:20 2015
开始读 , 读者编号 Thread-5 ,现在时间是 Mon Nov 30 21:12:20 2015
开始读 , 读者编号 Thread-7 ,现在时间是 Mon Nov 30 21:12:20 2015
开始读 , 读者编号 Thread-9 ,现在时间是 Mon Nov 30 21:12:20 2015
完成读 , 读者编号 Thread-1 , 现在时间是 Mon Nov 30 21:12:22 2015
完成读 , 读者编号 Thread-3 , 现在时间是 Mon Nov 30 21:12:22 2015
完成读 , 读者编号 Thread-5 , 现在时间是 Mon Nov 30 21:12:22 2015
完成读 , 读者编号 Thread-7 , 现在时间是 Mon Nov 30 21:12:22 2015

可以在需要暂停的位置插入raw_input("press enter to continue")

import psutil
p = psutil.Process(pid)
p.suspend() #挂起进程
p.resume() #恢复进程

也可以使用input()
或者 os.system("pause")


怎么输入python命令?
1、进入命令提示符,输入python后回车,进入python交互模式。2、输入name=input()后回车。3、输入名字:mymy后回车,此时变量name的内容为:mymy。4、输入name后回车,可以查看变量name的内容为:mymy。5、输入print(name)后回车,输出变量name的内容为mymy。6、输入print('hello',name)后回车,输出为...

Python如何进入django框架(2023年最新解答)
导读:本篇文章首席CTO笔记来给大家介绍有关Python如何进入django框架的相关内容,希望对大家有所帮助,一起来看看吧。python怎么搭建django框架 运行环境 Windows7(64位)+Python2.7+Django1.7.1 1.安装django框架 当然你首先要有python环境,对于学python的朋友们这个就不多说了~~ 我使用的是setuptools工具来安装的,setupt...

python如何进入编辑模式?
python进入编辑模式的方法:1、打开cmd命令提示符 2、在cmd命令行输入python回车即可直接进入python编辑模式 然后即可直接输入python代码并执行了。更多Python知识请关注Python视频教程栏目。

Python怎样进入交互式编程环境
1、首先在Window 上在安装 Python时,已经已经安装了默认的交互式编程客户端,提示窗口:在 python 提示符中输入以下文本信息,然后按 Enter 键查看运行效果。2、然后,通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕。当脚本执行完成后,解释器不再有效。所有 Python 文件将以 .py 为扩展名。将...

苹果pad上的pythonide怎么运行
1、在ipad上搜索Python,点击进去。2、进去网站之后,点击Downloads->Windows,选择“Windows x86-64 executable installer”版本的Python进行下载。3、下载完Python之后,双击进行安装,点击“Install Now”,可以看到默认的安装路径是“C:UsersaAppDataLocalProgramsPythonPython37”,也可以勾选“Add Python ...

python3.7.5怎么运行
python3.7.5运行步骤如下:1.在官网下载Python3.7.5的安装包,然后按照提示进行安装。2.打开终端或命令行界面。在Windows系统中,可以使用cmd命令打开命令行界面。3.输入python3命令,进入Python3交互模式。如果安装了多个版本的Python,需要输入python3命令才能进入Python3交互模式。4.输入Python代码,进行...

python怎么用
一种为画笔控制命令,还有一种是全局控制命令1画笔运动命令2画笔控制命令3全局控制命令;windows系统打开命令提示符,Linux系统打开终端,输入Python即可进入Python交互环境如果提示错误,就输入Python3,这是版本的问题;1首先需要打开电脑的桌面,如图所示,并按开始的快捷键点击安装好的python36程序进入2然后...

python能黑进别人的电脑吗
其实,网络安全方面,根本不可能用一种方法或者一种语言达到你的要求。因为想进入别人的系统,需要很多的知识。当然如果你买个木马之类的就简单了。

苹果iPad Python进不去怎么办
iPad下载的软件打不开的原因: 1:软件与系统版本不兼容。 2:软件BUG问题。 3:系统版本低。 建议更新系统版本再打开软件。 操作为: 第一步:电脑登陆苹果官网下载itunes软件,安装完毕后打开。 第二步:用数据线把ipad与电脑连接。

手机上的Python怎么运行操作,代码在电脑上运行的出手机却不行_百度知...
接下来,让我们一起看看控制台和编辑器:B. 控制台和编辑器 图 - 控制台 如果你在开发者面板上长按控制台或编辑器图标,你还可以在桌面上创建一个快捷方式,点击它允许你直接进入控制台或者编辑器。控制台 图 - 由通知栏进入控制台 就像我前面所说的,QPython 有个和 PC 端一样的 Python 控制...

洪雅县15347126007: python怎么让进程暂停 -
坚璐露疏: 如果是暂停一段时间 就可以使用time模块的sleep函数 time.sleep(秒数)就可以了 秒数可以是小数

洪雅县15347126007: python怎么让进程暂停 -
坚璐露疏: 可以在需要暂停的位置插入raw_input("press enter to continue")

洪雅县15347126007: 怎样手动停止python程序运行 -
坚璐露疏: 如果你是在程序中让其自动退出,则可以使用:exit()执行到此命令时,程序终止.如果是程序陷入死循环,想强制结束,则按Ctrl + C.

洪雅县15347126007: python运行的程序怎么停止 -
坚璐露疏: 如果在linux运行,就跟普通程序一样就行,查找pid,然后使用kill.如果实在windows,ctrl + alt + delete,打开任务管理器,查找进程,然后结束掉就可以了.

洪雅县15347126007: python怎么让程序执行完停住 -
坚璐露疏: 结尾加上 a=raw_input() 效果是 执行完等待 输入任意键退出

洪雅县15347126007: 在Python中哪些命令可以让程序停止运行? -
坚璐露疏: exit(0);

洪雅县15347126007: python 中如何按esc键退出正在运行的程序? -
坚璐露疏: 要看你在什么平台上运行Python的程序了 我知道的有如下: 如果在putty.exe上 就是Ctrl + D; 如果在IDLE上 就是Ctrl + C, 可能ESC也会有用; 如果在pyscripter上 如果无限循环的东西基本在XP上就不能暂停了 只能强行把pyscripter用任务管理器关了 别的平台我没试过;

洪雅县15347126007: 请教python有没有终止程序运行的语句 -
坚璐露疏: return break 都可以终止函数的运行exit(0) # 无错误退出exit(1) # 有错误退出这两条语句一般都会加在程序的最后 因为exit是迫使系统去终止程序的运行

洪雅县15347126007: spyder正在运行的python程序后我想让它停下来 -
坚璐露疏: IPython Console有个红色的正方形,点它

洪雅县15347126007: python 暂停,继续线程 -
坚璐露疏: Python3, 使用 Thread 对象的 Lock 和 Rlock 可以实现简单的线程同步,这两个对象都有 acquire 方法和 release 方法,对于那些需要每次只允许一个线程操作的数据,可以将其操作放到 acquire 和 release 方法之间.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网