Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.61 KB | None | 0 0
  1. import threading
  2. import time
  3. import random
  4.  
  5. LOCK = threading.RLock()
  6.  
  7. var=[
  8.     {'race':1,'time':10,'status':0},
  9.     {'race':2,'time':20,'status':0},
  10.     {'race':3,'time':30,'status':0},
  11.     {'race':4,'time':40,'status':0},
  12.     {'race':5,'time':50,'status':0},
  13.     {'race':6,'time':60,'status':0},
  14.     {'race':7,'time':70,'status':0},
  15.     {'race':8,'time':80,'status':0},
  16.     {'race':9,'time':90,'status':0},
  17.     {'race':10,'time':100,'status':0},
  18.     {'race':11,'time':110,'status':0},
  19.     {'race':12,'time':120,'status':0},
  20.     {'race':13,'time':130,'status':0},
  21.     {'race':14,'time':140,'status':0},
  22.     {'race':15,'time':150,'status':0},
  23.     {'race':16,'time':160,'status':0},
  24.     {'race':17,'time':170,'status':0},
  25.     {'race':18,'time':180,'status':0},
  26.     {'race':19,'time':190,'status':0},
  27.     {'race':20,'time':200,'status':0},
  28.     {'race':21,'time':210,'status':0},
  29.     {'race':22,'time':220,'status':0},
  30.     {'race':23,'time':230,'status':0},
  31. ]
  32.  
  33.  
  34. class Line(threading.Thread):
  35.     def __init__(self,line):
  36.         threading.Thread.__init__(self)
  37.         self.daemon = True
  38.         self.time=0;
  39.         self.line=line
  40.     def run(self):
  41.         global LOCK
  42.         global var
  43.         for row in var:
  44.             if (not row['status']):
  45.                 LOCK.acquire()
  46.                 row['status']=1;
  47.                 LOCK.release()
  48.                 #print(row['race'])
  49.                 print('Race: {}; time: {}, line: {}'.format(row['race'],row['time'],self.line))
  50.                 time.sleep(random.random())
  51.  
  52.        
  53. workerthreadlist=[]
  54. for x in range(1,4):
  55.     #print(x)
  56.     newthread = Line(x)
  57.     workerthreadlist.append(newthread)
  58.     newthread.start()
  59. while threading.active_count():
  60.     time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement