Уточнение потоков - PullRequest
       8

Уточнение потоков

0 голосов
/ 27 февраля 2012

У меня вопрос общего уровня архитектуры по нижеприведенным сценариям.

В моем продукте много подсистем, таких как компоненты.

хорошо ли хранить каждую подсистему как отдельный процесс? или хорошо хранить все подсистемы в отдельных потоках в одном процессе?

Все мои подсистемы будут взаимодействовать друг с другом для передачи / получения данных друг от друга.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2012

Без веской причины или нужно создать задачу?Просто используйте тему.

0 голосов
/ 27 февраля 2012

Проблема с многопоточностью заключается в том, что для безопасной передачи данных непосредственно между ними вам потребуется некоторая форма синхронизации между ними.Делайте это достаточно часто, и вы исключите любые преимущества использования нескольких потоков.

Моя собственная практика - не использовать потоки, если в этом нет абсолютной необходимости.Часто я использую больше потоков, если я взаимодействую с какими-то аппаратными средствами, такими как последовательные или сетевые устройства, поскольку они могут резко замедлить отклик системы.

Я склонен придерживаться правила, согласно которому поток должен бытьвозможность работать самостоятельно с небольшим (если есть) взаимодействием с любым другим кодом.Если часть кода сильно зависит от другой, то их не следует размещать в отдельных потоках.

Вы должны спроектировать систему, которая сначала работает (во что бы то ни стало поместите код подсистемы в отдельные библиотеки), а затем, если производительностьявляется проблемой, чтобы посмотреть, есть ли какие-либо преимущества от многопоточности.Делая это таким образом, вы избегаете хлопот отладочных потоков до тех пор, пока это не станет абсолютно необходимым.

Как говорится, Keep It Simple.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...