Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from multiprocessing import Pool
- import time
- class Sensor_A:
- def __init__(self):
- self.measurement_interval = 2
- def get_data(self):
- time.sleep(0.75)
- return 1
- class Sensor_B:
- def __init__(self):
- self.measurement_interval = 3
- def get_data(self):
- time.sleep(0.6)
- return 2
- def worker(obj):
- if not obj:
- return None
- else:
- return getattr(obj, 'get_data')()
- def measure(n, sensor_list, interval):
- for i in range(0, n):
- start_time = time.time()
- measure_sensors = [ sensor
- if i%sensor.measurement_interval==0
- else None
- for sensor in sensor_list ]
- with Pool(4) as p:
- results = p.map(worker, measure_sensors)
- waittime = (start_time
- + interval
- - time.time())
- time.sleep(waittime)
- print('{} at {}'.format(repr(results), time.time()))
- if __name__=='__main__':
- sensor_list = [ Sensor_A(), Sensor_B(), Sensor_B() ]
- measure(5, sensor_list, 1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement