Advertisement
Guest User

Untitled

a guest
Jul 10th, 2019
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.75 KB | None | 0 0
  1. import threading
  2. import time
  3. import random
  4. import math
  5.  
  6. users={1:{'username':'boba1','password':'1111'},
  7. 2:{'username':'boba2','password':'2222'},
  8. 3:{'username':'boba3','password':'3333'},
  9. 4:{'username':'boba4','password':'4444'}
  10. }
  11.  
  12. sleep_f=a=[i+1*random.randint(123,1231) for i in range(random.randint(500,3000))]
  13. n=0
  14. str_run=[0]
  15. num_run=int(math.ceil(len(sleep_f)/45))
  16.  
  17. for i in range(num_run):
  18.     if i == num_run-1:
  19.         str_run.append(len(sleep_f))
  20.     else:
  21.         str_run.append(str_run[len(str_run)-1]+random.randint(43,50))
  22.  
  23.  
  24. # init events
  25.  
  26. e1 = threading.Event()
  27. e2 = threading.Event()
  28. e3 = threading.Event()
  29. e4 = threading.Event()
  30. evnts=[e1,e2,e3,e4]
  31.  
  32. def cheking_threat(st_run, end_run, name, password, event_for):
  33.     print(st_run,end_run,name,password)
  34.     for i in sleep_follrs[st_run:end_run]:
  35.         event_for.wait() # wait for event
  36.         event_for.clear() # clean event for future
  37.         print (i,'     in [',st_run,':',end_run,']','   by   ',name)
  38.         ner=random.randint(10,15)
  39.         print('going to sleep for',ner,'second')
  40.         time.sleep(ner)
  41.         event_for.set() # set event for neighbor thread
  42.  
  43. p=1
  44. t=[]
  45. for i in range(num_run):
  46.     if p == len(users):
  47.         t.append(threading.Thread(target=cheking_threat, args=(str_run[i],str_run[i+1],users[p]['username'],users[p]['password'],evnts[p-1])))
  48.         p=1
  49.     else:
  50.         t.append(threading.Thread(target=cheking_threat, args=(str_run[i],str_run[i+1],users[p]['username'],users[p]['password'],evnts[p-1])))
  51.         p+=1
  52.  
  53. # start threads
  54. for i in range(len(t)):
  55.     t[i].start()
  56. for i in range(len(evnts)):
  57.     evnts[i].set() # initiate the first event
  58.  
  59.  
  60. # join threads to the main thread
  61. for i in range(len(t)):
  62.     t[i].join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement