|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.11.2014, 21:29 | #1 |
Новичок
Джуниор
Регистрация: 04.11.2014
Сообщений: 1
|
Мультитрединг: память и нити
Добрый вечер. При попытке написать код, использующий параллельные вычисления, наткнулся на следующую проблему: при создании нескольких потоков каждый из них выполняет одну и ту же функцию, при этом для каждого потока создается некий объект task_. Ниже приведен кусок заголовочного файла с некоторыми произвольными классами: class_1, class_2, class_3. В нем присутствует класс thread_pool, который создает нити и сразу запускает на них функцию worker_thread.
Код:
На картинке ниже схематичное изображение процесса запуска нитей: structure_thr_prog.jpg Сам вопрос заключается в следующем: верно ли, что для каждой нити в цикле в worker_thread создается собственный объект task_, который используется только данной нитью? Если это так, что подтверждает картинка ниже - скрин консоли, где выведены id нити, адрес task_, создаваемого этой нитью, и адрес члена result данного task_, почему адреса result в разных нитях, и соответственно разных task_, одинаковые? screen_console.JPG И ещё вопрос: если при запуске task_.run() в каждой нити, дальше при расчетах нити принципиально не обращаются к общим данным, то верно ли, что никаких "многопоточных" проблем внутри task_.run() возникнуть не может? Спасибо за ответы. Последний раз редактировалось prothet; 04.11.2014 в 21:32. |
05.11.2014, 00:04 | #2 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
а это нормально, что layer инициализируется в декларации?
может компилятор его при таком раскладе его статиком считает, и может даже конст. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нити | Queit72ru | Помощь студентам | 0 | 11.03.2012 11:11 |
Построить ломаную линию по заданныи вершинам. Вершины указываются с клавиатуры по «методу резиновой нити». | HollywoodStar | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 17.12.2011 14:36 |
Нити в процессе | JustLikeFar | Win Api | 6 | 23.08.2009 17:32 |
В среде Delphi составить программу (процесс), который паралельно запускает два потока (нити) | metamfetamin | Помощь студентам | 9 | 06.11.2007 15:26 |
Потоки и их "нити" | Air | Win Api | 7 | 15.05.2007 20:17 |