暂停python(暂停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秒

ReaderWriter

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

Python 脚本运行的时候怎么暂停

直接用 pycharm 在循环的地方设置两个断点,用 debug 模式的 step over 来跑就行了。

python程序如何让其暂停

你是ython3还是Python2?它们运行暂停的方法也有所不同,以python3为例:

1、input();

这种方法不用包含模块,因此这也是最常用的一种暂停手段。

Python2中的raw_input()和input()语句在Python3中已经被合并到input()中。

2、os.system(“pause”);

这种方法需要包含os模块(import os),在windows下IDLE运行会弹出cmd命令行,

进行暂停操作,直接运行.py文件会直接在命令行中暂停。

3、time.sleep(“second”);

这种方法需要包含time模块(import time),second是自定义的时间长短,根据实际情况,

让Python脚本暂停执行的几种方法求解

参考文档原文:

Suspend execution for the given number of seconds. The argument may be a floating point number to indicate a more precise sleep time. The actual suspension time may be less than that requested because any caught signal will terminate thesleep()following execution of that signal’s catching routine. Also, the suspension time may be longer than requested by an arbitrary amount because of the scheduling of other activity in the system.大意:让程序执行暂停指定的秒数,参数可以是浮点型以指定精确的时间,但是程序真正暂停的时间可能长于请求的时间也可能短于暂停的时间。

2. raw_input( )

通过等待输入来让程序暂停

3. os.system(“pause”)

通过执行操作系统的命令来让程序暂停,该函数是通过实现标准C函数system( )来实现的。

Python2.4新加入了subprocess模块,而且官方建议使用改模块替换os.system所以,也可以这样写:

求喷!求补充!

Python中如何在一段时间后停止程序

用到threading的Timer,也类似单片机那样子,在中断程序中再重置定时器,设置中断,python实例代码如下:

import threading

import time

def change_user():

  print(‘这是中断,切换账号’)

  t = threading.Timer(3, change_user)

  t.start()

#每过3秒切换一次账号

t = threading.Timer(3, change_user)

t.start()

while True:

  print(‘我在爬数据’)

  time.sleep(1)

扩展资料

有时当一个条件成立的情况下,需要终止程序,可以使用sys.exit()退出程序。sys.exit()会引发一个异常:

1、如果这个异常没有被捕获,那么python编译器将会退出,后面的程序将不会执行。

2、如果这个异常被捕获(try…except…finally),捕获这个异常可以做一些额外的清理工作,后面的程序还会继续执行。

注:0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。另一种终止程序的方法os._exit()

一般情况下使用sys.exit()即可,一般在fork出来的子进程中使用os._exit()

采用sys.exit(0)正常终止程序,程序终止后shell运行不受影响。

采用os._exit(0)关闭整个shell,调用sys._exit(0)后整个shell都重启了(RESTART Shell)。

python 暂停几秒执行下一步、

在代码开头引入time模块:import time

在需要延时的地方加入语句:time.sleep(1)

(括号中的1意为停顿1秒,想停顿时间更长可以换数字)

举例:

import time

print ’11’

time.sleep(10)

print ’22’

先打印11,等待10秒后,打印22。

扩展资料:

文件执行

1、用 notepad++ 或 Sublime Text,甚至 写字本创建一个文件。

2、比如:print(‘Hello world!’)

3、保存为 helloworld.py,一定要选或写后缀名 .py 。

4、进入cmd命令行,切换(cd)到保存文件的目录,执行 python helloworld.py,文件名前的python表示调用python解释器执行文件。

原创文章,作者:T84L4,如若转载,请注明出处:https://www.506064.com/n/129171.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
T84L4T84L4
上一篇 2024-10-03 23:26
下一篇 2024-10-03 23:26

相关推荐

  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29

发表回复

登录后才能评论