У меня есть приложение, которое будет генерировать несколько потоков. Тем не менее, я чувствую, что может возникнуть проблема с потоками, обращающимися к данным, которых они не должны быть. Я относительно новичок в том, чтобы нарезать так, как будто со мной.Передача структур данных в разные потоки
Здесь структура многопоточного приложения (извините за грубость):
MainThread
/ \
/ \
/ \
Thread A Thread B
/ \ / \
/ \ / \
/ \ / \
Thread A_1 Thread A_2 Thread B_1 Thread B_2
Под каждый литерным потоком (который может быть много), там будет только два потока, и они выпустили из последовательно. Проблема, с которой я сталкиваюсь, - я не совсем уверен, как передать данные в эти потоки.
Таким образом, структура данных создается в MainThread, будет изменена в начерченной нити (Thread A и т. Д.), Специфичной для этого потока, а затем переменная-член из этой структуры данных отправляется в потоки Letter_Numbered.
В настоящее время класс с буквой нитей имеет переменную-член и, когда класс построен, структура данных из mainthread передается по ссылке, вызывая конструктор копирования, так что в потоке с надписью есть своя собственная копия для воспроизведения.
Буквенный поток просто принимает строковую переменную из структуры данных в потоке с надписью. Мой вопрос в том, что это неприемлемо? Есть ли лучший способ обеспечить, чтобы каждый потоковый поток получал свою собственную структуру данных?
Извините за несколько плохое объяснение, пожалуйста, оставьте комментарии, и я попробую уточнить.
EDIT: Итак, мой конструктор поточных нитей должен принимать значение VALUE структуры данных, а не ссылку?
Возможно, расскажите немного о том, чего вы хотите достичь. Я немного озадачен использованием двух последовательных потоков - вы имеете в виду, что один начинается, когда другой заканчивается? – mdma
+1 для хорошо сформулированного вопроса –
@mdma: вы имеете в виду lettered_numbered? Если да, то да, пронумерованная нить срабатывает с первого lettered_numbered, ждет, когда она будет закончена (или ошибка), и выйдет из второго буквенного номера. Это помогает? – Robb