IPB
ЛогинПароль:

> 

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Потоки... Потоки? Потоки!, FPC
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Сел переписывать движок Doomed Game под потоки и... понял, что мои знания о потокобезопасности оставляют желать лучшего. Может быть кто-нибудь (volvo?) проведет несколько лекций на эту тему? Думаю, это не только меня может заинтересовать. Или может я просто задам свои вопросы?


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Цитата
Какие методы планируется вызывать из разных потоков? Все?
В общем случае не все. Но кто его знает, как потом понадобится. Поэтому давай попробуем сделать все.
Цитата
Как пытался сделать потокобезопасность?
Пока никак не пытался, только доки читал.
Цитата
(ну, и более глобальный вопрос, как вообще обеспечивается межпоточное взаимодействие, знаешь?)
Знаю на теоретическом уровне критические секции, события, мутексы, семафоры. Использовать не пробовал.
Цитата
Что именно (по-твоему) может быть опасного в тех методах, которые ты привел, почему нельзя прямо так взять и работать с объектом из разных потоков?
Так... Думаю, проблемы могут возникнуть при обращении к данным (FData). Сам по себе вызов методов, кажется, безопасен (у потоков отдельные стеки). Причем если пересекутся две попытки записи, проблемы очевидны, но я слышал, что и чтение/запись тоже вызывает проблемы (рассинхронизация кэшей процессоров, например). Еще есть подозрение, что при наложении чтение/запись можно прочитать испорченное значение (вряд ли запись переменной происходит в 1 этап).

PS Вообще, выкладываю и сам проект. Исходники надергал из Doomed Game, получилось подобие спрайтового движка. Он работает, но не потокобезопасен. Потому возможны ошибки. Несколько файлов с документацией удалять не стал, но они уже устарели.


Прикрепленные файлы
Прикрепленный файл  project_t_snapshot.zip ( 855.02 килобайт ) Кол-во скачиваний: 605


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Archon   Потоки... Потоки? Потоки!   28.06.2009 1:13
volvo   Название темы - :good: Нет, пока лекций на тему…   28.06.2009 1:20
Archon   Окей. Тогда рассмотрим пример. Мое приложение сост…   28.06.2009 1:49
volvo   Какие методы планируется вызывать из разных потоко…   28.06.2009 2:16
Archon   В общем случае не все. Но кто его знает, как потом…   28.06.2009 2:29
volvo   Вот !!! Все, что нужно, ты уже сказал.…   28.06.2009 2:37
Archon   А неделимость чтения кто гарантировать будет? Вдру…   28.06.2009 2:45
volvo   Тогда, естественно, придется пользоваться другими …   28.06.2009 3:25
Archon   Я не знаю процедур :). Можно, конечно, WinApi, но …   28.06.2009 3:39
Archon   Кстати да, CriticalSection тут будет проще :).unit…   28.06.2009 10:20
Archon   Обезопасил модуль u_log.pas. Теперь думаю над u_wi…   28.06.2009 12:36
volvo   А чего его проверять, вроде выглядит нормально, на…   28.06.2009 12:57
Archon   А какие существуют методы тестирования на потокобе…   28.06.2009 13:03
Archon   Продолжаю исправлять классы. Работу с текстурами я…   28.06.2009 13:43
volvo   Что-то не так... Смотри: uses sysutils, classes, …   28.06.2009 14:06
Archon   Странно, я у себя в том же тесте таких ужасов не н…   28.06.2009 14:54
volvo   Угу, тут прямо шалит, а если сделать: unit u_test;…   28.06.2009 15:29
Archon   А в чем разница? Разве что в TMultiReadExclusiveWr…   28.06.2009 15:44
volvo   Кто сказал?   28.06.2009 15:51
Archon   Цитата из того же файла версии 2.1 за август 2006.…   28.06.2009 16:47
volvo   Так... Меняем стратегию... Модуль: Тестовая прогр…   28.06.2009 17:27
Archon   Долго не отвечал, потому что устраивался на летнюю…   2.07.2009 22:12
volvo   Кури этот код, это рекомендация Рихтера, а он плох…   3.07.2009 0:20


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 8.05.2024 21:58
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name