Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос на понимание потоков [D7]


Страницы:   1 2

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]

Могут.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо