Вниз
Скачать: CL | DM;

Синхронизация   Найти похожие ветки 

← →
Lampa   (2004-06-25 20:09) [0]

В программе (т.е. в главном потоке) объявлена глобальная переменная, и создается  второй поток, который изменяет значение этой переменной. Нужно синхронизировать такое действие?


← →
default ©   (2004-06-25 20:10) [1]

зависит от ситуации


← →
Lampa   (2004-06-25 20:19) [2]

Например?

В главном модуле программы, есть переменная (integer), второй запущенный поток может иногда изменять ее.
Правда есть еще и третий поток, который считывает эту переменную.


← →
Fay ©   (2004-06-25 20:19) [3]

тогда ой 8)


← →
Lampa   (2004-06-25 20:20) [4]


> Fay ©   (25.06.04 20:19) [3]

не понял :)


← →
default ©   (2004-06-25 20:25) [5]

сам пронализ-уй ситуацию на возможные глюки


← →
Lampa   (2004-06-25 20:27) [6]

это значит надо?

А что вообще будет если не синхронизировать потоки (тогда когда это надо), ведь и так работает же :)  просто интересно знать, на самом деле понятно что так делать нельзя.


← →
default ©   (2004-06-25 20:29) [7]

кстати если будешь менять значение глобальной переменной через InterlockedExchangeAdd можешь не о чём не бояться


← →
default ©   (2004-06-25 20:32) [8]

Lampa   (25.06.04 20:27) [6]
Windows система с вытесняющей многозадачностью, никогда не известно в какой момент управление будет передано на другой поток
(если бы система была с вытесняющей многозад-ью проблем бы не было - например поток выполнив какую-то свою работу(или еёчасть) посред-ом API ф-ии говорит ОС - можешь передавать упр-ие другому потоку, но сам пон-ешь тогда возможна была бы монополия на процессорное время)


← →
Lampa   (2004-06-25 20:43) [9]


> default ©   (25.06.04 20:29) [7]

Да, но если у меня переменная String и мне надо ее изменить?

Значит надо таки синхронизацию выполнять.

А если у меня другая ситуация: в другом потоке крутится цикл, и если значение глобальной переменной равняется там например какому-то числу, то выполняется определенное действие.
В то время как из главного модуля программы, эту переменную можно изменить (чтобы условии в другом потоке сработало), так здесь нужно выполнять синхронизацию, и если да, то как?


← →
default ©   (2004-06-25 21:02) [10]

Lampa   (25.06.04 20:43) [9]
в твоём случае пожалуй не надо


← →
Lampa   (2004-06-25 21:27) [11]


> default ©   (25.06.04 21:02) [10]



> Lampa   (25.06.04 20:43) [9]

Даже если эта глоб. переменная находится в главном модуле (в первичном потоке)?


← →
default ©   (2004-06-25 21:47) [12]

Lampa   (25.06.04 21:27) [11]
ну у тя она в одном месте пишется, в другом читается
если так боишься в какие-нибудь критические секции работу с разделяемыми данными засунь


← →
Lampa   (2004-06-25 22:03) [13]

Ок, спасибо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.027 c
6-1084724045
tolik77
2004-05-16 20:14
2004.07.11
Переброску попорол:))) Теперь вопрос о DNS (про IP или имени)


1-1088084783
Новенький
2004-06-24 17:46
2004.07.11
Вопрос по WebBrowser у.


3-1087306446
kondryuk
2004-06-15 17:34
2004.07.11
Получаю одно и то же...


1-1088253844
Maratus
2004-06-26 16:44
2004.07.11
Принтер печатает только после постановки в задание всех страниц


4-1085812822
Micah'GF
2004-05-29 10:40
2004.07.11
Как отловить перемещения мыши по экрану




   Наверх