Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import threading
- import time
- import random
- import math
- users={1:{'username':'boba1','password':'1111'},
- 2:{'username':'boba2','password':'2222'},
- 3:{'username':'boba3','password':'3333'},
- 4:{'username':'boba4','password':'4444'}
- }
- sleep_f=a=[i+1*random.randint(123,1231) for i in range(random.randint(500,3000))]
- n=0
- str_run=[0]
- num_run=int(math.ceil(len(sleep_f)/45))
- for i in range(num_run):
- if i == num_run-1:
- str_run.append(len(sleep_f))
- else:
- str_run.append(str_run[len(str_run)-1]+random.randint(43,50))
- # init events
- e1 = threading.Event()
- e2 = threading.Event()
- e3 = threading.Event()
- e4 = threading.Event()
- evnts=[e1,e2,e3,e4]
- def cheking_threat(st_run, end_run, name, password, event_for):
- print(st_run,end_run,name,password)
- for i in sleep_follrs[st_run:end_run]:
- event_for.wait() # wait for event
- event_for.clear() # clean event for future
- print (i,' in [',st_run,':',end_run,']',' by ',name)
- ner=random.randint(10,15)
- print('going to sleep for',ner,'second')
- time.sleep(ner)
- event_for.set() # set event for neighbor thread
- p=1
- t=[]
- for i in range(num_run):
- if p == len(users):
- t.append(threading.Thread(target=cheking_threat, args=(str_run[i],str_run[i+1],users[p]['username'],users[p]['password'],evnts[p-1])))
- p=1
- else:
- t.append(threading.Thread(target=cheking_threat, args=(str_run[i],str_run[i+1],users[p]['username'],users[p]['password'],evnts[p-1])))
- p+=1
- # start threads
- for i in range(len(t)):
- t[i].start()
- for i in range(len(evnts)):
- evnts[i].set() # initiate the first event
- # join threads to the main thread
- for i in range(len(t)):
- t[i].join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement