python lock

来源:互联网 发布:单机手游推荐不要网络 编辑:程序博客网 时间:2024/06/05 16:43
# -*- encoding: UTF-8 -*-
from multiprocessing import Pool
from multiprocessing import Lock
import os
max=4
col=0
row=0
ticket=[[0 for r in  range(4)] for c in range(4)]
def buy_ticket(name):
    lock=Lock()
    lock.acquire()
    global row,col,ticket
    if row < max:
        ticket[row][col]=1
        print('task %s Your seat is %s %s'%(name,str(row),str(col)))
        if col >= max-1:
            col=0
            row+=1
        else:
            col+=1
    else:
        print('Sold out!')


    lock.release()


if __name__=='__main__':
    p=Pool(4)
    for i in range(16):
        p.apply_async(buy_ticket,args=(str(i),))
    p.close()
    p.join()

    print('The parent pro end')


用了lock之后,为什么还会出错?

原创粉丝点击