| ²é¿´: 103 | »Ø¸´: 0 | ||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | ||
jove1782ľ³æ (ÕýʽдÊÖ)
|
[×ÊÔ´]
PythonÏ̱߳à³Ì£¨Èý£©Í¬²½¶ÓÁÐ
|
|
|
ÎÒÃǾ³£»á²ÉÓÃÉú²úÕß/Ïû·ÑÕß¹ØÏµµÄÁ½¸öÏß³ÌÀ´´¦ÀíÒ»¸ö¹²Ïí»º³åÇøµÄÊý¾Ý¡£ÀýÈçÒ»¸öÉú²úÕßÏ߳̽ÓÊÜÓû§Êý¾Ý·ÅÈëÒ»¸ö¹²Ïí»º³åÇøÀµÈ´ýÒ»¸öÏû·ÑÕßÏ̶߳ÔÊý¾ÝÈ¡³ö´¦Àí¡£µ«ÊÇÈç¹û»º³åÇøµÄ̫С¶øÉú²úÕߺÍÏû·ÑÕßÁ½¸öÒì²½Ï̵߳ÄËٶȲ»Í¬Ê±£¬ÈÝÒ׳öÏÖÒ»¸öÏ̵߳ȴýÁíÒ»¸öÇé¿ö¡£ÎªÁ˾¡¿ÉÄܵÄËõ¶Ì¹²Ïí×ÊÔ´²¢ÒÔÏàͬËٶȹ¤×÷µÄ¸÷Ï̵߳ĵȴýʱ¼ä£¬ÎÒÃÇ¿ÉÒÔʹÓÃÒ»¸ö¡°¶ÓÁС±À´Ìṩ¶îÍâµÄ»º³åÇø¡£ ´´½¨Ò»¸ö¡°¶ÓÁС±¶ÔÏó import Queue myqueue = Queue.Queue(maxsize = 10) Queue.QueueÀ༴ÊÇÒ»¸ö¶ÓÁеÄͬ²½ÊµÏÖ¡£¶ÓÁг¤¶È¿ÉΪÎÞÏÞ»òÕßÓÐÏÞ¡£¿Éͨ¹ýQueueµÄ¹¹Ô캯ÊýµÄ¿ÉÑ¡²ÎÊýmaxsizeÀ´É趨¶ÓÁг¤¶È¡£Èç¹ûmaxsizeСÓÚ1¾Í±íʾ¶ÓÁ㤶ÈÎÞÏÞ¡£ ½«Ò»¸öÖµ·ÅÈë¶ÓÁÐÖÐ myqueue.put(10) µ÷ÓöÓÁжÔÏóµÄput()·½·¨ÔÚ¶Óβ²åÈëÒ»¸öÏîÄ¿¡£put()ÓÐÁ½¸ö²ÎÊý£¬µÚÒ»¸öitemΪ±ØÐèµÄ£¬Îª²åÈëÏîÄ¿µÄÖµ£»µÚ¶þ¸öblockΪ¿ÉÑ¡²ÎÊý£¬Ä¬ÈÏΪ 1¡£Èç¹û¶ÓÁе±Ç°Îª¿ÕÇÒblockΪ1£¬put()·½·¨¾Íʹµ÷ÓÃÏß³ÌÔÝÍ£,Ö±µ½¿Õ³öÒ»¸öÊý¾Ýµ¥Ôª¡£Èç¹ûblockΪ0£¬put·½·¨½«Òý·¢FullÒì³£¡£ ½«Ò»¸öÖµ´Ó¶ÓÁÐÖÐÈ¡³ö myqueue.get() µ÷ÓöÓÁжÔÏóµÄget()·½·¨´Ó¶Óͷɾ³ý²¢·µ»ØÒ»¸öÏîÄ¿¡£¿ÉÑ¡²ÎÊýΪblock£¬Ä¬ÈÏΪ1¡£Èç¹û¶ÓÁÐΪ¿ÕÇÒblockΪ1£¬get()¾Íʹµ÷ÓÃÏß³ÌÔÝÍ££¬Ö±ÖÁÓÐÏîÄ¿¿ÉÓá£Èç¹ûblockΪ0£¬¶ÓÁн«Òý·¢EmptyÒì³£¡£ ÎÒÃÇÓÃÒ»¸öÀý×ÓÀ´Õ¹Ê¾ÈçºÎʹÓÃQueue # queue_example.py from Queue import Queue import threading import random import time # Producer thread class Producer(threading.Thread): def __init__(self, threadname, queue): threading.Thread.__init__(self, name = threadname) self.sharedata = queue def run(self): for i in range(20): print self.getName(),'adding',i,'to queue' self.sharedata.put(i) time.sleep(random.randrange(10)/10.0) print self.getName(),'Finished' # Consumer thread class Consumer(threading.Thread): def __init__(self, threadname, queue): threading.Thread.__init__(self, name = threadname) self.sharedata = queue def run(self): for i in range(20): print self.getName(),'got a value:',self.sharedata.get() time.sleep(random.randrange(10)/10.0) print self.getName(),'Finished' # Main thread def main(): queue = Queue() producer = Producer('Producer', queue) consumer = Consumer('Consumer', queue) print 'Starting threads ...' producer.start() consumer.start() producer.join() consumer.join() print 'All threads have terminated.' if __name__ == '__main__': main() ʾÀý´úÂëÖÐʵÏÖÁËÁ½¸öÀࣺÉú²úÕßÀàProducerºÍÏû·ÑÕßÀàConsumer¡£Ç°ÕßÔÚÒ»¸öËæ»úµÄʱ¼äÄÚ·ÅÈëÒ»¸öÖµµ½¶ÓÁÐqueueÖÐÈ»ºóÏÔʾ³öÀ´£¬ºóÕßÔÚÒ»¶¨Ëæ»úµÄʱ¼äÄÚ´Ó¶ÓÁÐqueueÖÐÈ¡³öÒ»¸öÖµ²¢ÏÔʾ³öÀ´¡£ |
» ²ÂÄãϲ»¶
288»·¾³×¨Ë¶,Çóµ÷²ÄÁÏ·½Ïò
ÒѾÓÐ12È˻ظ´
ÇóÉúÎïѧѧ˶µ÷¼Á¡ª¡ª364·Ö
ÒѾÓÐ7È˻ظ´
288Çóµ÷¼Á£¬Ò»Ö¾Ô¸»ªÄÏÀí¹¤´óѧ071005
ÒѾÓÐ4È˻ظ´
11408,335·Ö£¬±¾¿Æ211£¬Çóµ÷¼Á£¬¿Éתרҵ
ÒѾÓÐ5È˻ظ´
0817»¯Ñ§¹¤³ÌÓë¼¼ÊõÇóµ÷¼Á£¬Ò»Ö¾Ô¸Öк£Ñó319
ÒѾÓÐ7È˻ظ´
Äܶ¯µ÷¼Á326ר˶
ÒѾÓÐ4È˻ظ´
295Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
285Çóµ÷¼Á
ÒѾÓÐ7È˻ظ´
315Çóµ÷¼Á
ÒѾÓÐ9È˻ظ´
²ÄÁϵ÷¼Á
ÒѾÓÐ6È˻ظ´














»Ø¸´´ËÂ¥