Advertisement
Pihtija

Python Thread

May 7th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. zadatak
  2. ==================================
  3. import threading
  4. import time
  5.  
  6. class MojaNit(threading.Thread):
  7. def __init__(self, ime, vreme):
  8. threading.Thread.__init__(self)
  9. self.ime=ime
  10. self.vreme=vreme
  11.  
  12. def run(self):
  13. print (self.ime+time.strftime("%d.%m.%Y %H:%M:%S", time.gmtime(time.time())))
  14. time.sleep(self.vreme)
  15. print ("izlaz iz niti")
  16.  
  17.  
  18. def prikaz_vreme(pauza):
  19. print (threading.current_thread().getName()+" zahteva resurs..")
  20. brava.acquire()
  21. print (threading.current_thread().getName() + " uzima resurs..")
  22. print (time.strftime("%d.%m.%Y %H:%M:%S", time.gmtime(time.time())))
  23. time.sleep(pauza)
  24. brava.release()
  25. print (threading.current_thread().getName() + " oslobadja resurs..")
  26. #print ("izlaz iz funkcije")
  27.  
  28. brava=threading.Lock()
  29.  
  30. t=threading.Thread(target=prikaz_vreme,args=(3,))
  31. t.setName("Nitica 1")
  32. t.start()
  33.  
  34. t2=threading.Thread(target=prikaz_vreme,args=(4,))
  35. t2.setName("Nitica 2")
  36. t2.start()
  37.  
  38. t2.join() #zaustavlja tekucu nit, u ovom sluchaju main, da zavrshi t2
  39.  
  40. mt=MojaNit("Nit 1", 5)
  41. mt.setName("Nit 2")
  42. mt.start()
  43.  
  44. print (threading.enumerate()) #vraca broj aktivnih niti
  45.  
  46.  
  47. print ("Kraj")
  48. ==================================
  49. pumpa
  50. ==================================
  51. import threading
  52. import random
  53.  
  54.  
  55. brava=threading.Lock()
  56. pumpa=80
  57.  
  58.  
  59. class Automobil(threading.Thread):
  60. def __init__(self):
  61. threading.Thread.__init__(self)
  62. id=1;
  63. self.rezervoar=random.uniform(10,25)
  64. self.vreme_pristupa=random.randrange(1,3)
  65. self.id+=id
  66.  
  67. def run(self):
  68. print ("Automobil(regBR:RB0%d) pristaje na pumpu. Trazena kolicina %.2f L" % self.id, self.rezervoar)
  69. brava.acquire()
  70.  
  71. brava.release()
  72.  
  73. class Cisterna(threading.Thread):
  74. def __init__(self):
  75. self.dopuna=80
  76. self
  77.  
  78.  
  79. print (random.randrange(10,26))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement