Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. import multiprocessing, time
  2.  
  3. class Proc(multiprocessing.Process):
  4.  
  5. def __init__(self):
  6. self.x = 0
  7. self._y = multiprocessing.Value('i', 0)
  8. super(Proc, self).__init__()
  9. self.flag = False
  10. self._running = multiprocessing.Value('b', True)
  11.  
  12. @property
  13. def y(self):
  14. return self._y.value
  15.  
  16. @y.getter
  17. def y(self):
  18. return self._y.value
  19.  
  20. @y.setter
  21. def y(self, y0):
  22. print 'x is adjusted'
  23. self.x += 1
  24. self._y.value = y0
  25.  
  26. def run(self):
  27. while True:
  28. while self.running:
  29. print 'Proc', self.x, self.y
  30. self.x *= self.x
  31. time.sleep(4)
  32. print 'Stopped'
  33.  
  34. def stop(self):
  35. self.running = False
  36.  
  37. def resume(self):
  38. self.running = True
  39.  
  40. def getAll(self):
  41. return self.x
  42.  
  43. @property
  44. def running(self):
  45. return self._running.value == True
  46.  
  47. @running.setter
  48. def running(self, b):
  49. self._running.value = b
  50.  
  51. @running.getter
  52. def running(self):
  53. return self._running.value == True
  54.  
  55.  
  56. class Foo:
  57.  
  58. def __init__(self):
  59. self.p = Proc()
  60. self.p.x = 100
  61.  
  62. def __call__(self):
  63. self.p.start()
  64. for i in range(10):
  65. if i == 5:
  66. self.p.stop()
  67. time.sleep(5)
  68. self.p.resume()
  69. time.sleep(0.5)
  70.  
  71.  
  72. f = Foo()
  73. f()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement