中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

python暫停函數(shù),python讓程序暫停

python怎么讓進(jìn)程暫停

您的意思是要將進(jìn)程掛起(Suspend) 而非 阻塞(Block)

大通網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

如果用sleep() 進(jìn)程將阻塞

假設(shè)進(jìn)程下有兩個(gè)線程 那么這兩個(gè)線程會(huì)繼續(xù)運(yùn)行

要使進(jìn)程掛起 可以考慮使用psutil

import psutil

p = psutil.Process(pid)

p.suspend() #掛起進(jìn)程

p.resume() #恢復(fù)進(jìn)程

為了證明效果 我寫(xiě)了一個(gè)簡(jiǎn)單的進(jìn)程Process

其下有兩個(gè)線程 讀者Reader 和 寫(xiě)者Writer(簡(jiǎn)單的讀者寫(xiě)者問(wèn)題)

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) #手動(dòng)實(shí)現(xiàn)父類

pid = os.getpid()

def run(self):

print '當(dāng)前運(yùn)行進(jìn)程PID : %s ' %self.pid #子線程的id與父進(jìn)程的pid相同 屬于 同一個(gè)進(jìn)程

for i in range(0,5):

r = ThreadInReadAndWriteProblem.Reader()

w = ThreadInReadAndWriteProblem.Writer()

w.start()

r.start()

print '進(jìn)程阻塞'

sleep(10) #總共運(yùn)行時(shí)間10秒

ReaderWriter

import threading

from time import ctime, sleep

import os

mutex = threading.Lock() #互斥鎖

mutex_readercount = threading.Lock() #計(jì)數(shù)時(shí)的互斥 計(jì)算當(dāng)前正在讀的數(shù)目

readerCount = 0 number = 0

#不滿足條件的 進(jìn)入阻塞狀態(tài)

class Reader(threading.Thread): #讀者

def __init__(self):

threading.Thread.__init__(self) #繼承父類構(gòu)造函數(shù)

def run(self):

global mutex

global readerCount

#print '線程PID: %s ' %os.getpid()

while True:

mutex_readercount.acquire()

readerCount +=1

if readerCount == 1:

print '讀者進(jìn)程等待中,編號(hào)%s' %(self.name)

mutex.acquire() == False # 第一個(gè)需要申請(qǐng)

mutex_readercount.release()

print '開(kāi)始讀 , 讀者編號(hào) %s ,現(xiàn)在時(shí)間是 %s' %(self.name,ctime())

sleep(2)

print '完成讀 , 讀者編號(hào) %s , 現(xiàn)在時(shí)間是 %s' %(self.name,ctime())

mutex_readercount.acquire()

readerCount -= 1

if readerCount == 0: #所有讀者均完成

print '最后一個(gè)讀者完成讀 '

mutex.release()

mutex_readercount.release()

class Writer(threading.Thread): #寫(xiě)者

def __init__(self):

threading.Thread.__init__(self)

def run(self):

global mutex

global writerCount

#print '線程PID: %s' %os.getpid()

while True:

print '寫(xiě)者進(jìn)程等待中 編號(hào): %s' %(self.name)

mutex.acquire()

print '開(kāi)始寫(xiě) 編號(hào):%s 現(xiàn)在時(shí)間是: %s ' %(self.name,ctime())

sleep(5)

print '結(jié)束寫(xiě) 編號(hào): %s 現(xiàn)在時(shí)間是 %s' %(self.name,ctime())

mutex.release()

測(cè)試程序

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 '進(jìn)程掛起 %s' %ctime()

sleep(5)

wake(p.pid)

print '喚醒進(jìn)程 %s' %ctime()

def stop(pid):

print '進(jìn)程暫停 進(jìn)程編號(hào) %s ' %(pid)

p = psutil.Process(pid)

p.suspend()

def wake(pid):

print '進(jìn)程恢復(fù) 進(jìn)程編號(hào) %s ' %(pid)

p = psutil.Process(pid)

p.resume()

if __name__ == '__main__':

main()

結(jié)果:

當(dāng)前運(yùn)行進(jìn)程PID : 3096

寫(xiě)者進(jìn)程等待中 編號(hào): Thread-2

開(kāi)始寫(xiě) 編號(hào):Thread-2 現(xiàn)在時(shí)間是: Mon Nov 30 21:12:12 2015

讀者進(jìn)程等待中,編號(hào)Thread-1

寫(xiě)者進(jìn)程等待中 編號(hào): Thread-4

進(jìn)程阻塞

寫(xiě)者進(jìn)程等待中 編號(hào): Thread-6

寫(xiě)者進(jìn)程等待中 編號(hào): Thread-8

寫(xiě)者進(jìn)程等待中 編號(hào): Thread-10

進(jìn)程暫停 進(jìn)程編號(hào) 3096

進(jìn)程掛起 Mon Nov 30 21:12:15 2015

進(jìn)程恢復(fù) 進(jìn)程編號(hào) 3096

喚醒進(jìn)程 Mon Nov 30 21:12:20 2015

結(jié)束寫(xiě) 編號(hào): Thread-2 現(xiàn)在時(shí)間是 Mon Nov 30 21:12:20 2015

寫(xiě)者進(jìn)程等待中 編號(hào): Thread-2

開(kāi)始讀 , 讀者編號(hào) Thread-1 ,現(xiàn)在時(shí)間是 Mon Nov 30 21:12:20 2015

開(kāi)始讀 , 讀者編號(hào) Thread-3 ,現(xiàn)在時(shí)間是 Mon Nov 30 21:12:20 2015

開(kāi)始讀 , 讀者編號(hào) Thread-5 ,現(xiàn)在時(shí)間是 Mon Nov 30 21:12:20 2015

開(kāi)始讀 , 讀者編號(hào) Thread-7 ,現(xiàn)在時(shí)間是 Mon Nov 30 21:12:20 2015

開(kāi)始讀 , 讀者編號(hào) Thread-9 ,現(xiàn)在時(shí)間是 Mon Nov 30 21:12:20 2015

完成讀 , 讀者編號(hào) Thread-1 , 現(xiàn)在時(shí)間是 Mon Nov 30 21:12:22 2015

完成讀 , 讀者編號(hào) Thread-3 , 現(xiàn)在時(shí)間是 Mon Nov 30 21:12:22 2015

完成讀 , 讀者編號(hào) Thread-5 , 現(xiàn)在時(shí)間是 Mon Nov 30 21:12:22 2015

完成讀 , 讀者編號(hào) Thread-7 , 現(xiàn)在時(shí)間是 Mon Nov 30 21:12:22 2015

python中return函數(shù)的用法

在 Python 中,“return”函數(shù)的用法如下:

1、return 語(yǔ)句用于退出函數(shù),終止函數(shù)并將 return 值傳回。實(shí)例:

def?a(x,y):

if?x==y:

return?x,y

2、用于同一循環(huán)語(yǔ)句下,遇到第一個(gè) return 后即返回。實(shí)例:

```python

def?fun(a,b):

print?(a)

return?a

print?(b)

return?b

resunlt?=?fun(2,6)

2

```

3、用于 return 在不帶參數(shù)的情況下(或者沒(méi)有寫(xiě) return 語(yǔ)句),默認(rèn)返回 None。實(shí)例:

def?recurve(a,b):

if?a%b==0:

return?b

else:

gcd(b,a%b)

以上內(nèi)容參考:百度百科-Python

python 暫停幾秒執(zhí)行下一步、

在代碼開(kāi)頭引入time模塊:import time

在需要延時(shí)的地方加入語(yǔ)句:time.sleep(1)

(括號(hào)中的1意為停頓1秒,想停頓時(shí)間更長(zhǎng)可以換數(shù)字)

舉例:

import time

print '11'

time.sleep(10)

print '22'

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

擴(kuò)展資料:

文件執(zhí)行

1、用 notepad++ 或 Sublime Text,甚至 寫(xiě)字本創(chuàng)建一個(gè)文件。

2、比如:print('Hello world!')

3、保存為 helloworld.py,一定要選或?qū)懞缶Y名 .py 。

4、進(jìn)入cmd命令行,切換(cd)到保存文件的目錄,執(zhí)行 python helloworld.py,文件名前的python表示調(diào)用python解釋器執(zhí)行文件。

python sleep(1)什么意思

描述?Python?time?sleep()?函數(shù)推遲調(diào)用線程的運(yùn)行,可通過(guò)參數(shù)secs指秒數(shù),表示進(jìn)程掛起的時(shí)間。

Python有一個(gè)名為time的模塊,該模塊提供了一些有用的功能來(lái)處理與時(shí)間有關(guān)的任務(wù)。其中一種常用的函數(shù)是sleep()。?sleep()函數(shù)將當(dāng)前線程的執(zhí)行暫停給定的秒數(shù)。?

新聞標(biāo)題:python暫停函數(shù),python讓程序暫停
網(wǎng)址分享:http://www.rwnh.cn/article24/dsighje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、網(wǎng)站維護(hù)、網(wǎng)頁(yè)設(shè)計(jì)公司、App開(kāi)發(fā)、標(biāo)簽優(yōu)化、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
新化县| 元江| 赤水市| 营口市| 东莞市| 顺义区| 方正县| 嘉义市| 于都县| 阿鲁科尔沁旗| 敦煌市| 卢氏县| 子洲县| 衡阳市| 石屏县| 陆川县| 邵阳县| 三门峡市| 海丰县| 渝中区| 洛浦县| 大姚县| 汕尾市| 柞水县| 永吉县| 白山市| 沙湾县| 桐庐县| 启东市| 芷江| 德保县| 盘山县| 工布江达县| 项城市| 富源县| 三亚市| 沾益县| 桃园县| 连城县| 五寨县| 钦州市|