Q
Qiangning Hong
A class Collector, it spawns several threads to read from serial port.
Collector.get_data() will get all the data they have read since last
call. Who can tell me whether my implementation correct?
class Collector(object):
def __init__(self):
self.data = []
spawn_work_bees(callback=self.on_received)
def on_received(self, a_piece_of_data):
"""This callback is executed in work bee threads!"""
self.data.append(a_piece_of_data)
def get_data(self):
x = self.data
self.data = []
return x
I am not very sure about the get_data() method. Will it cause data lose
if there is a thread is appending data to self.data at the same time?
Is there a more pythonic/standard recipe to collect thread data?
--
Qiangning Hong
_______________________________________________
< Those who can, do; those who can't, simulate. >
-----------------------------------------------
\ ___-------___
\ _-~~ ~~-_
\ _-~ /~-_
/^\__/^\ /~ \ / \
/| O|| O| / \_______________/ \
| |___||__| / / \ \
| \ / / \ \
| (_______) /______/ \_________ \
| / / \ / \
\ \^\\ \ / \ /
\ || \______________/ _-_ //\__//
\ ||------_-~~-_ ------------- \ --/~ ~\ || __/
~-----||====/~ |==================| |/~~~~~
(_(__/ ./ / \_\ \.
(_(___/ \_____)_)
Collector.get_data() will get all the data they have read since last
call. Who can tell me whether my implementation correct?
class Collector(object):
def __init__(self):
self.data = []
spawn_work_bees(callback=self.on_received)
def on_received(self, a_piece_of_data):
"""This callback is executed in work bee threads!"""
self.data.append(a_piece_of_data)
def get_data(self):
x = self.data
self.data = []
return x
I am not very sure about the get_data() method. Will it cause data lose
if there is a thread is appending data to self.data at the same time?
Is there a more pythonic/standard recipe to collect thread data?
--
Qiangning Hong
_______________________________________________
< Those who can, do; those who can't, simulate. >
-----------------------------------------------
\ ___-------___
\ _-~~ ~~-_
\ _-~ /~-_
/^\__/^\ /~ \ / \
/| O|| O| / \_______________/ \
| |___||__| / / \ \
| \ / / \ \
| (_______) /______/ \_________ \
| / / \ / \
\ \^\\ \ / \ /
\ || \______________/ _-_ //\__//
\ ||------_-~~-_ ------------- \ --/~ ~\ || __/
~-----||====/~ |==================| |/~~~~~
(_(__/ ./ / \_\ \.
(_(___/ \_____)_)