Russian Qt Forum
Июнь 10, 2024, 23:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Обмен данными между потоками  (Прочитано 10323 раз)
Bepec
Гость
« Ответ #15 : Август 07, 2012, 17:31 »

async здесь потому, что потоки то рассинхронизированы. Точнее я неудачно выразился - async относилось к вызовам в потоках, а к записи отношения не имеет Улыбающийся

И если по умолчанию, то запись в файл кешируется. И соответственно *блокирование вызовов не произойдёт. Улыбающийся

А если и произойдёт, то одномоментная синхронизация ничего не даст. Вообще. Ибо в следующий момент будет рассинхронизация. Любой поток в системе может вот так случайно синхронизироваться Веселый
Было у меня пару раз явление под названием гонка потоков Веселый И представь, программа целую неделю работала и потоки были синхронизированы. Ан нет, потом что-то внесло изменения в их устоявшееся сообщество и они рассинхронизировались => крах программы.

И да - с чего начался спор то - ничего вывод не синхронизирует Веселый А если и есть влияние то оно не выходит за обычные рамки вероятности.

Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Август 07, 2012, 18:48 »

А если и произойдёт, то одномоментная синхронизация ничего не даст. Вообще. Ибо в следующий момент будет рассинхронизация. Любой поток в системе может вот так случайно синхронизироваться Веселый
Было у меня пару раз явление под названием гонка потоков Веселый И представь, программа целую неделю работала и потоки были синхронизированы. Ан нет, потом что-то внесло изменения в их устоявшееся сообщество и они рассинхронизировались => крах программы.
Это мне что-то напоминает
Цитировать
А вот на этом поле, веришь, сам зайца за задние ноги поймал!
..
Все до того леса мое, и тот лес тоже мой
Улыбающийся Улыбающийся
Записан
DmitryM
Гость
« Ответ #17 : Август 07, 2012, 19:46 »

И да - с чего начался спор то - ничего вывод не синхронизирует Веселый А если и есть влияние то оно не выходит за обычные рамки вероятности.
Я говорил, что происходит скрытая синхронизация, т .к. системные вызовы работающие с I/O производят блокировку.
Если множество потоков будет делал частые системные вызовы, то потоки будут влиять друг на друга.
Записан
Bepec
Гость
« Ответ #18 : Август 07, 2012, 19:49 »

Igors - приведи своё мнение ) Я с удовольствием почитаю Улыбающийся

Дмитрий я тебе по секрету скажу - система вызывает потоки согласно свободным ресурсам и приоритетам. Так что синхронизация происходит на уровне уже самой системы Веселый

PS ну сам подумай головой - всё в ОС контролируется системными вызовами. Qt же является лишь надстройкой Веселый
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.039 секунд. Запросов: 19.