1. 程式人生 > >pyhton中雙端佇列

pyhton中雙端佇列

# -*- coding: utf-8 -*-
"""
Created on Tue May 29 16:33:10 2018

@author: Administrator
"""
# queue
# deque
import collections
#import threading
import multiprocessing
import time

candle = collections.deque("candle")

def burn(direction, nextSource):
    print("burning")
    while True:
        try:
            next = nextSource()
            time.sleep(0.1)
        except IndexError:
            break
        else:
            print('%s : %s\n'%(direction, next))
    print("Done %s \n"%direction)
    
# 建立兩個執行緒,分別從兩端去雙向佇列中取值
#觀察有沒有異常情況
#left = threading.Thread(target=burn, 
#                        args=('left', candle.popleft))
#right = threading.Thread(target=burn, 
#                         args=('right', candle.pop))

left = multiprocessing.Process(target=burn, args=('left', candle.popleft))
right = multiprocessing.Process(target=burn, args=('right', candle.pop))

left.start()
right.start()

left.join()
right.join()
    

 

pyton中雙端佇列的優勢