導航:首頁 > 編程語言 > pythonsyssleep

pythonsyssleep

發布時間:2022-05-27 09:45:54

python 中的sleep函數

在我的Python環境(Win7+Python2.7.9)下測試沒問題,是等待5秒後再輸出 m。

你的問題可能是被標准輸出流的緩沖區緩沖了,給 stdout 加一個 flush 就可以了:

fromtimeimportsleep
fromsysimportstdout

print"s"
stdout.flush()
sleep(5)
print"m"

⑵ 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
import psutil
import Scheler
from time import ctime, sleep

def main():
p = .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怎麼把sleep()封裝成公共函數方法

首先呢,sleep就是一個函數,

#使用方法
importtime
time.sleep(1)#睡眠1s種

當然你要二次封裝也沒有問題

importtime
defdiy_sleep(times=3)#你可以傳參也可以不傳參,默認是休眠3s
time.sleep(times)

這樣 你就可以直接應用diy_sleep()函數

⑷ python中的sleep函數在哪

這個在time模塊里,需要導入tine模塊才能使用,是作為暫停使用。
比如:


時間單位是秒,上面的代碼就表示暫停兩秒的意思。
你可以放在你希望的任何地方

⑸ python sleep(1)什麼意思

  1. 描述Pythontimesleep()函數推遲調用線程的運行,可通過參數secs指秒數,表示進程掛起的時間。

  2. Python有一個名為time的模塊,該模塊提供了一些有用的功能來處理與時間有關的任務。其中一種常用的函數是sleep()。sleep()函數將當前線程的執行暫停給定的秒數。

⑹ python代碼中的sleep是用來做什麼的

sleep是等待多少秒

Python time sleep()方法
描述
Python time sleep() 函數推遲調用線程的運行,可通過參數secs指秒數,表示進程掛起的時間。
語法
sleep()方法語法:
time.sleep(t)
參數
t -- 推遲執行的秒數。
返回值
該函數沒有返回值。

閱讀全文

與pythonsyssleep相關的資料

熱點內容
南京中興招收專科程序員嗎 瀏覽:297
代理商php源碼 瀏覽:983
蘋果手機怎麼解壓軟體app 瀏覽:650
游戲資源被編譯 瀏覽:152
代碼編譯後黑屏 瀏覽:8
程序員情侶寫真 瀏覽:505
python3孿生素數 瀏覽:36
計算楊輝三角Python 瀏覽:404
linux目錄重命名 瀏覽:196
演算法設計的最終形態是代碼 瀏覽:262
程序員社團招新橫幅 瀏覽:238
拖鞋解壓視頻大全 瀏覽:887
租伺服器主機鏈接軟體叫什麼 瀏覽:856
交叉編譯工具的linux版本號 瀏覽:156
python開發應用軟體 瀏覽:32
hdl綜合器與c編譯器的區別 瀏覽:899
編譯原理最左推導代碼 瀏覽:702
加密三 瀏覽:131
通過編譯鏈接後形成的可執行程序 瀏覽:680
怎麼用matlab編程 瀏覽:781