±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 199  |  »Ø¸´: 1
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£

jove1782

ľ³æ (ÕýʽдÊÖ)


[×ÊÔ´] PythonÏ̱߳à³Ì£¨Ò»£©Ï̶߳ÔÏó

ÎÒÃÇÔÚ×öÈí¼þ¿ª·¢µÄʱºòºÜ¶àÒªÓõ½¶àÏ̼߳¼Êõ¡£ÀýÈçÈç¹û×öÒ»¸öÏÂÔØÈí¼þÏóflashget¾ÍÒªÓõ½¡¢ÏóÔÚÏßÊÓÆµ¹¤¾ßrealplayerÒ²ÒªÓõ½ÒòΪҪͬʱÏÂÔØmedia stream»¹Òª²¥·Å¡£ÆäʵÀý×ÓÊǺܶàµÄ¡£
Ïß³ÌÏà¶Ô½ø³ÌÀ´ËµÊÇ¡°ÇáÁ¿¼¶¡±µÄ£¬²Ù×÷ϵͳÓýÏÉÙµÄ×ÊÔ´´´½¨ºÍ¹ÜÀíÏ̡߳£³ÌÐòÖеÄÏß³ÌÔÚÏàͬµÄÄÚ´æ¿Õ¼äÖÐÖ´ÐУ¬²¢¹²ÏíÐí¶àÏàͬµÄ×ÊÔ´¡£

ÔÚpythonÖÐÈçºÎ´´½¨Ò»¸öÏ̶߳ÔÏó

Èç¹ûÄãÒª´´½¨Ò»¸öÏ̶߳ÔÏ󣬺ܼòµ¥£¬Ö»ÒªÄãµÄÀà¼Ì³Ðthreading.Thread£¬È»ºóÔÚ__init__ÀïÊ×Ïȵ÷ÓÃthreading.ThreadµÄ__init__·½·¨¼´¿É

import threading
class mythread(threading.Thread):
def __init__(self, threadname):
threading.Thread.__init__(self, name = threadname)
....

Õâ²Å½ö½öÊǸö¿ÕỊ̈߳¬Îҿɲ»ÊÇÒªËûÀ­¿Õ³µµÄ£¬Ëû¿ÉµÃ¸øÎҸɵãʵÔڻºÜ¼òµ¥£¬ÖØÐ´ÀàµÄrun()·½·¨¼´¿É£¬°ÑÄãÒªÔÚÏß³ÌÖ´ÐÐʱ×öµÄÊÂÇé¶¼·Åµ½ÀïÃæ

import threading
import time
class mythread(threading.Thread):
def __init__(...):
....
def run(self):
for i in range(10):
print self.getName, i
time.sleep(1)

ÒÔÉÏ´úÂëÎÒÃÇÈÃÕâ¸öÏß³ÌÔÚÖ´ÐÐÖ®ºóÿ¸ô1ÃëÊä³öÒ»´ÎÐÅÏ¢µ½ÆÁÄ»£¬10´Îºó½áÊø

getName()ÊÇthreading.ThreadÀàµÄÒ»¸ö·½·¨£¬ÓÃÀ´»ñµÃÕâ¸öÏ̶߳ÔÏóµÄname¡£»¹ÓÐÒ»¸ö·½·¨setName()µ±È»¾ÍÊÇÀ´ÉèÖÃÕâ¸öÏ̶߳ÔÏóµÄnameµÄÁË¡£

Èç¹ûÒª´´½¨Ò»¸öỊ̈߳¬Ê×ÏȾÍÒªÏÈ´´½¨Ò»¸öÏ̶߳ÔÏó

mythread1 = mythread('mythread 1')

Ò»¸öÏ̶߳ÔÏó±»´´½¨ºó£¬Ëû¾Í´¦ÓÚ¡°born¡±£¨µ®Éú״̬£©

ÈçºÎÈÃÕâ¸öÏ̶߳ÔÏó¿ªÊ¼ÔËÐÐÄØ?Ö»Òªµ÷ÓÃÏ̶߳ÔÏóµÄstart()·½·¨¼´¿É

mythread1.start()

ÏÖÔÚÏ߳̾ʹ¦ÓÚ¡°ready¡±×´Ì¬»òÕßÒ²³ÆÎª¡°runnable¡±×´Ì¬¡£

Ææ¹ÖÂ𣿲»ÊÇÒѾ­startÁËÂð£¿ÎªÊ²Ã´²»³ÆÎª¡°running¡±×´Ì¬ÄØ£¿ÆäʵÊÇÓÐÔ­ÒòµÄ¡£ÒòΪÎÒÃǵļÆËã»úÒ»°ãÊDz»¾ßÓÐÕæÕý²¢Ðд¦ÀíÄÜÁ¦µÄ¡£ÎÒÃÇËùνµÄ¶àÏß³ÌÖ»ÊǰÑʱ¼ä·Ö³ÉƬ¶Î£¬È»ºó¸ôÒ»¸öʱ¼ä¶Î¾ÍÈÃÒ»¸öÏß³ÌÖ´ÐÐһϣ¬È»ºó½øÈë¡°sleeping ¡±×´Ì¬£¬È»ºó»½ÐÑÁíÒ»¸öÔÚ¡°sleeping¡±µÄỊ̈߳¬Èç´ËÑ­»·runnable->sleeping->runnable... £¬Ö»ÊÇÒòΪ¼ÆËã»úÖ´ÐÐËٶȺܿ죬¶øÊ±¼äƬ¶Î¼ä¸ôºÜС£¬ÎÒÃǸÐÊܲ»µ½£¬ÒÔΪÊÇͬʱ½øÐеġ£ËùÒÔ˵һ¸öÏß³ÌÔÚstartÁËÖ®ºóÖ»ÊÇ´¦ÔÚÁË¿ÉÒÔÔËÐеÄ״̬£¬ËûʲôʱºòÔËÐл¹ÊÇÓÉϵͳÀ´½øÐе÷¶ÈµÄ¡£

ÄÇÒ»¸öÏß³Ìʲôʱºò»á¡°dead¡±ÄØ£¿Ò»°ãÀ´Ëµµ±Ï̶߳ÔÏóµÄrun·½·¨Ö´ÐнáÊø»òÕßÔÚÖ´ÐÐÖÐÅ׳öÒì³£µÄ»°£¬ÄÇôÕâ¸öÏ߳̾ͻá½áÊøÁË¡£ÏµÍ³»á×Ô¶¯¶Ô¡°dead¡±×´Ì¬Ï߳̽øÐÐÇåÀí¡£

Èç¹ûÒ»¸öÏß³Ìt1ÔÚÖ´ÐеĹý³ÌÖÐÐèÒªµÈ´ýÁíÒ»¸öÏß³Ìt2Ö´ÐнáÊøºó²ÅÄÜÔËÐеϰÄǾͿÉÒÔÔÚt1ÔÚµ÷ÓÃt2µÄjoin()·½·¨

....
def t1(...):
...
t2.join()
...

ÕâÑùt1ÔÚÖ´Ðе½t2.join()Óï¾äºó¾Í»áµÈ´ýt2½áÊøºó²Å»á¼ÌÐøÔËÐС£

µ«ÊǼÙÈçt1ÊǸöËÀÑ­»·µÄ»°ÄÇôµÈ´ý¾ÍûÓÐÒâÒåÁË£¬ÄÇÔõô°ìÄØ£¿¿ÉÒÔÔÚµ÷ÓÃt2µÄjoin()·½·¨µÄʱºò¸øÒ»¸ö¸¡µãÊý×ö³¬Ê±²ÎÊý£¬ÕâÑùÕâ¸öÏ߳̾Ͳ»»áµÈµ½»¨¶ùҲлÁËÁË¡£ÎÒµÈÄã10s£¬Äã²»»ØÀ´ÎÒ»¹²»ÔÊÐíÎҸļް¡£¿

def t1(...):
...
t2.join(10)
...

Èç¹ûÒ»¸ö½ø³ÌµÄÖ÷Ïß³ÌÔËÐÐÍê±Ï¶ø×ÓÏ̻߳¹ÔÚÖ´Ðеϰ£¬ÄÇô½ø³Ì¾Í²»»áÍ˳ö£¬Ö±µ½ËùÓÐ×ÓÏ߳̽áÊøÎªÖ¹£¬ÈçºÎÈÃÖ÷Ï߳̽áÊøµÄʱºòÆäËû×ÓÏß³ÌÒ²¹Ô¹ÔµÄ¸úÀÏ´ó³·ÍËÄØ£¿ÄǾÍÒª°ÑÄÇЩ²»Ìý»°µÄÈËÉèÖÃΪÌý»°µÄСµÜ£¬Ê¹ÓÃÏ̶߳ÔÏóµÄsetDaemon()·½·¨£¬²ÎÊýΪboolÐÍ¡£TrueµÄ»°¾Í´ú±íÄãÒªÌý»°£¬ÎÒÀÏ´ó£¨Ö÷Ị̈߳©³¶ºô£¬ÄãÒ²Òª¸ú×ų·£¬²»ÄÜÍϺóÍÈ¡£Èç¹ûÊÇ FalseµÄ»°¾Í²»ÓÃÄÇôÌý»°ÁË£¬ÀÏ´óÔÊÐíÄãÃǽ«ÔÚÍâ¾üÃüÓÐËù²»Êܵġ£ÐèҪעÒâµÄÊÇsetDaemon()·½·¨±ØÐëÔÚÏ̶߳ÔÏóûÓе÷ÓÃstart()·½·¨Ö®Ç°µ÷Ó㬷ñÔòûЧ¹û¡£

t1 = mythread('t1')
print t1.getName(),t1.isDaemon()
t1.setDaemon(True)
print t1.getName(),t1.isDaemon()
t1.start()
print 'main thread exit'

µ±Ö´Ðе½ print 'main thread exit' ºó£¬Ö÷Ï߳̾ÍÍ˳öÁË£¬µ±È»t1Õâ¸öÏß³ÌÒ²¸ú׎áÊøÁË¡£µ«ÊÇÈç¹û²»Ê¹ÓÃt1Ï̶߳ÔÏóµÄsetDaemon()·½·¨µÄ»°£¬¼´±ãÖ÷Ï߳̽áÊøÁË£¬»¹ÒªµÈ´ýt1Ïß³Ì×Ô¼º½áÊø²ÅÄÜÍ˳ö½ø³Ì¡£isDaemon()ÊÇÓÃÀ´»ñµÃÒ»¸öÏ̶߳ÔÏóµÄDaemonflag״̬µÄ¡£

ÈçºÎÀ´»ñµÃÓëÏß³ÌÓйصÄÐÅÏ¢ÄØ£¿

»ñµÃµ±Ç°ÕýÔÚÔËÐеÄÏ̵߳ÄÒýÓÃ

running = threading.currentThread()

»ñµÃµ±Ç°ËùÓл¶ÔÏ󣨼´run·½·¨¿ªÊ¼µ«ÊÇδÖÕÖ¹µÄÈκÎỊ̈߳©µÄÒ»¸öÁбí

threadlist = threading.enumerate()

»ñµÃÕâ¸öÁбíµÄ³¤¶È

threadcount = threading.activeCount()

²é¿´Ò»¸öÏ̶߳ÔÏóµÄ״̬µ÷ÓÃÕâ¸öÏ̶߳ÔÏóµÄisAlive()·½·¨£¬·µ»Ø1´ú±í´¦ÓÚ¡°runnable¡±×´Ì¬ÇÒûÓС°dead¡±

threadflag = threading.isAlive()
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ jove1782 µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 321Çóµ÷¼Á +11 ÈÏÕæÇóÉÏѧ 2026-04-02 11/550 2026-04-04 13:45 by ÖзÉÔº¿Õ¹ÜѧԺÑ
[¿¼ÑÐ] 08¹¤¿ÆÇóµ÷¼Á286 +6 tgs_001 2026-03-28 6/300 2026-04-04 13:18 by 1753564080
[¿¼ÑÐ] Ò»Ö¾Ô¸°²»Õij211 0703»¯Ñ§×Ü·Ö339Çóµ÷¼Á +3 Íí·ç²»Íí 2026-04-04 3/150 2026-04-04 09:30 by JourneyLucky
[¿¼ÑÐ] Çóµ÷¼Á +3 wos666 2026-04-03 3/150 2026-04-04 05:16 by gswylq
[¿¼ÑÐ] 286Çóµ÷¼Á +8 lim0922 2026-04-02 8/400 2026-04-03 20:19 by rzh123456
[¿¼ÑÐ] 332Çóµ÷¼Á +8 @MZB382400 2026-03-28 8/400 2026-04-03 19:31 by lijunpoly
[¿¼ÑÐ] ѧ˶»úе¹¤³Ì303Çóµ÷¼Á +6 ÎÞÃûËùÒÔ½ÐÎâÃ÷ 2026-03-30 7/350 2026-04-03 16:48 by asdfzly
[¿¼ÑÐ] 313Çóµ÷¼Á +3 ¡«Î¢Î¢Á¹¡« 2026-04-03 3/150 2026-04-03 11:25 by à£à£à£0119
[¿¼ÑÐ] 298·Ö 070300Çóµ÷¼Á +11 zwen03 2026-04-02 11/550 2026-04-03 10:19 by macy2011
[¿¼ÑÐ] 322Çóµ÷¼Á£ºÒ»Ö¾Ô¸ºþÄÏ´óѧ ²ÄÁÏÓ뻯¹¤£¨085600£©£¬ÒѹýÁù¼¶¡£ +12 XXСµË 2026-03-29 13/650 2026-04-02 21:39 by °ÙÁéͯ888
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©Àí¹¤´óѧ±¾¿Æ211²ÄÁϹ¤³Ì294Çóµ÷¼Á +8 mikasaµÄΧ½í 2026-03-28 9/450 2026-04-02 12:09 by ms629
[¿¼ÑÐ] 324Çóµ÷¼Á +5 ÏëÉÏѧÇóµ÷ 2026-04-01 6/300 2026-04-02 10:16 by sanrepian
[¿¼ÑÐ] ¿¼Ñе÷¼Á0702 +3 ÷×ÓζÍíϼ 2026-03-28 3/150 2026-04-02 10:10 by jp9609
[¿¼ÑÐ] 322Çóµ÷¼Á +5 ìäÙÒXX 2026-03-31 6/300 2026-04-02 10:08 by Çóµ÷¼Ázz
[¿¼ÑÐ] ¡¾Çóµ÷¼Á¡¿ÐÂÄÜÔ´²ÄÁϱ¾¿Æ£¬Ò»Ö¾Ô¸211£¬³õÊÔ321 +6 Çóµ÷¼ÁѧУ£¬ 2026-04-02 6/300 2026-04-02 09:41 by Çç¿Õ210210
[¿¼ÑÐ] 296Çóµ÷¼Á +4 Íô£¡£¿£¡ 2026-03-31 7/350 2026-04-01 22:04 by ¿Í¶ûÃÀµÂ
[¿¼ÑÐ] 085600£¬320·ÖÇóµ÷¼Á +5 ´ó²öС×Ó 2026-04-01 6/300 2026-04-01 19:40 by ÌÆãå¶ù
[¿¼ÑÐ] ²ÄÁÏ¿ÆÑ§Ó빤³ÌÇóµ÷¼Á +13 ÉîVËÞÉá°É 2026-03-29 13/650 2026-03-31 19:50 by Dyhoer
[¿¼ÑÐ] 269Çóµ÷¼Á +4 ÎÒÏë¶ÁÑÐ11 2026-03-31 4/200 2026-03-31 10:04 by cal0306
[¿¼ÑÐ] 332Çó92µ÷¼Á +8 ½¶½¶123 2026-03-28 8/400 2026-03-29 10:46 by ÖÜè÷µ¤
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û