У меня есть вопрос о совместном использовании очередей между процессами в Python.Ниже у меня есть три очереди, один основной процесс и три внутренних процесса.Каждый внутренний процесс будет добавлять и получать значения из различных очередей (им нужен легкий доступ к очередям).
Я думаю, что он работает как сейчас, но этот код является основой большого проектаЯ собираюсь работать, и я хочу убедиться, что нет лучшего способа сделать это, о котором я не знаю.Я просто как бы придумал эту идею.Из некоторых других сообщений следует, что вложенные классы не очень похожи на Python.
Есть совет?Этот код легко или трудно читать?Отказаться от вложенных классов или оставить все как есть?
Спасибо всем.
class MainController(Process):
def __init__(self):
self.queue_stream = Queue()
self.queue_language = Queue()
self.queue_expander = Queue()
self.control_stream = self.StreamController(self).start()
self.control_language = self.LanguageController(self).start()
self.control_expander = self.ExpanderController(self).start()
print 'Launching Main Controller'
class StreamController(Process):
def __init__(self, main):
Process.__init__(self)
self.main = main
print 'Launching Stream Controller'
def run(self):
while True:
self.main.queue_stream.put('hello, stream')
class LanguageController(Process):
def __init__(self, main):
Process.__init__(self)
self.main = main
print 'Launching Language Controller'
def run(self):
while True:
print self.main.queue_stream.get()
self.main.queue_language.put('hello, language')
class ExpanderController(Process):
def __init__(self, main):
Process.__init__(self)
self.main = main
print 'Launching Expander Controller'
def run(self):
while True:
print self.main.queue_language.get()
self.main.queue_expander.put('hello, expander')
def main():
# Launch all queues for the system
control_main = MainController()
if __name__ == '__main__':
print 'Launching System...'
main()