![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос на понимание потоков [D7]
yurikon © (2012-04-13 11:38:00)Добрый день всем!
Прочитал всю справку делфи по потокам. Трабл с одновременной работой с данными мне понятен. Не понятно вот что. Могут ли два потока "одновременно" вызвать процедуру из третьего юнита и исполнится ли эта процедура параллельно в двух потоках или будет некая очередность?
С уважением.
Медвежонок Пятачок (2012-04-27 16:30:00) [21]Есть два потока, они вызывают одну и ту же процедуру, которая добавляет строку в TStringList (простой вариант логирования).
Это не простой, а неправильный вариант логирования.
Из вторичных потоков нельзя трогать гуи.
RWolf (2012-04-27 16:24:00) [22]если добавляют в один и тот же лист — то да.
yurikon (2012-04-27 16:13:00) [23]Подниму топик с вашего позволения )).
Есть два потока, они вызывают одну и ту же процедуру, которая добавляет строку в TStringList (простой вариант логирования). Требуется ли в таком случае использовать критическую секцию?
С уважением.
Германн (2012-04-14 02:48:00) [24]
> yurikon (13.04.12 15:29) [3]
>
> Получается, что каждый поток создает для себя копию таблиц
> процедур, которые он использует?
А на хрена ему это нужно? Секция кода используется процессом и его потоками только для чтения.
Cobalt (2012-04-13 16:12:00) [25]потоки разделяют сегменты данных и сегменты кода.
различаются они стеками вызовов (т.е. локальными простыми переменными процедур)
Сергей М. (2012-04-13 15:30:00) [26]не получается.
в одном экземрпляре они)
yurikon (2012-04-13 15:29:00) [27]Получается, что каждый поток создает для себя копию таблиц процедур, которые он использует?
Cobalt (2012-04-13 12:37:00) [28]Вызвать могут.
исполняться она будет параллельно-очередно, т.е. в обоих потоках, в своих квантах времени (нет никакой гарантии, что оба вызова (если были произведены одновременно) "закончатся" одновременно)
Inovet (2012-04-13 11:42:00) [29]Могут.