|
|
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
Может быть, если код, реализующий процедуру задачи нити, оформлять строго в виде отдельного модуля, то проблем с нежелательным изменением памяти станет меньше? Нет видимости - нет и проблем. Т.е., работать только с блоком параметров (сгенерированным по правилам thread-safe данного конкретного случая) и сообщениями, получаемыми из очереди нити. Ни блокировок, ни семафоров, ни синхронизации. Попробуйте. Вот увидите, многое станет проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 17:42 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
чччД, Беда только в том, что часто, почти всегда, приходится работать с общими данными. По собственному написанию множества потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 18:01 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
makhaon, а ты не работай с общими данными, работай с сообщениями. Вот и все. "По собственному опыту", аналогично, ага.:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 18:04 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
тоже по собственному опыту если общие данные, то в основном на чтение а чаще, если подумать, то можно и завернуть потоку с собой порцию данных, которые будут совсем не общие, а только его а при возвращении из потока решать, что делать с данными, которые получились в нем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 18:25 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
krapotkin... если общие данные, то ... Не надо "общих" данных. Совсем. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 18:43 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
конечно нет. и правда ) если программа обрабатывает и визуализирует данные, зачем разным частям программы эти "общие" данные ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 18:55 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
krapotkin, ты сам себе придумал, что треды якобы должны работать с общими данными, вот и страдаешь. Треды нужны не для совместной обработки общих данных, а для совместной работы над общей задачей. Понимаю, что у тебя мировоззрение уже устаканилось, есть приемчики решения проблем при условии их наличия. Но что плохого работать просто в условиях, когда этих проблем нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 19:18 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
чччДПопробуйте. Вот увидите, многое станет проще. [spoiler][youtube= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 19:19 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 19:26 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
чччДдиссертации уже давно написаны. ты бы код или схему привел, а то привычно все сведется к троллингу и срачу. Кто умеет - без тебя знает, кто не в курсе - однозначно не поймет, о чем тема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 19:53 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
ДокчччДдиссертации уже давно написаны. ты бы код или схему привел, а то привычно все сведется к троллингу и срачу. Кто умеет - без тебя знает, кто не в курсе - однозначно не поймет, о чем тема Ну ё. Какой код, это всего лишь предложение подхода. Ну ладно. Например. Берем знаменитый класс вадмана, но код метода треда реализуем не в классе (и не в наследнике), а в отдельной, автономной процедуре, определенной в отдельном физическом модуле. Ссылку на процедуру передаем, например, в конструктор класса. Сам же класс имеет интерфейс, реализующий минимум: запуск метода треда, передача блока данных (ну там и передача строки и других примитивов, если неймется), проверка наличия полученных данных в очереди, синхронное получение данных. Можно для удобства - назначение коллбэка на заданный тип входящего сообщения и т.п. сахарок. Самое главное - изолировать метод треда от внешнего мира. Модуль с реализацией метода должен "видеть" лишь структуры (типы) сообщений и константы, идентифицирующие сообщения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2018, 20:25 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
Какой-то бред А как же настройки? Статистика? Сообщения - тоже говно. Лок фри форева. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 00:15 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
Все потоки программы должны быть максимально независимы друг от друга (желательно, полностью), и иметь минимум общих ресурсов (желательно, вообще не иметь). Есть только одно очевидное исключение: поток может управлять порождаемыми им потоками (создавать, завершать, будить, добавлять в очередь... как-то еще управлять). Всё, больше взаимосвязей быть не должно. В идеале, к которому необходимо стремиться. С осознания этого и надо начинать строить архитектуру программ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 00:40 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
YuRock... Есть только одно очевидное исключение: поток может управлять порождаемыми им потоками (создавать, завершать, будить, добавлять в очередь... как-то еще управлять). ... Что значит "будить"? Тред "спит", пока нет работы. Отправил в тред сообщение - он и проснулся. "Добавлять в очередь" == посылать сообщение? Поясни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 00:58 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
чччД, Спит (пока нет работы) - ждет события, например. Разбудить - взвести это событие. Либо, если используется очередь сообщений - то да, послать сообщение. Добавить в очередь - это добавить в очередь. Если использовать очередь сообщений - да, послать сообщение. Я лично не люблю очереди сообщений, самописную очередь использую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 01:18 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
YuRock, понял, спасибо. Я тоже не имею в виду под "очередью сообщений" именно "системную" очередь окна или треда (хотя и не исключаю такого варианта). Так как у меня практически везде используется библиотека ZeroMQ, я часто использую ее очереди, а сообщения пересылаю с помощью протокола inproc той же самой библиотеки ZeroMQ: легко, быстро, безопасно. К тому же еще и кроссплатформенно. :) А также практически бескровно можно перейти от inter-thread сообщений к inter-process и inter-computer (в локальной сети). Детали реализации, в общем, несущественны. Ну вот. Отвлек меня. :) Я об изоляции кодирования конкретной задачи. Если изоляция на уровне процессов не вызывает сомнений и затруднений (хотя, кто-то все же норовит заюзать систему синхронизации для доступа к разделяемым ресурсам), то при кодировании задачи на уровне треда сплошь и рядом наблюдаем попытки реализовать синхронизацию доступа к общим ресурсам с использованием всяких непотребств, в результате часто в лучшем случае вместо распараллеливания получаем кооперативную квазипараллельность, а в худшем - "непонятное" поведение многонитевого приложения. Нарабатываются методики обхода, но ведь всего лишь достаточно использовать сообщения и очереди ("системные" или "самодельные"). В большинстве случаев, имхо. Нездоровые случаеи погони за ложными целями типа "оптимизация ради оптимизации", о которых лучше не упоминать, я не упоминаю. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 01:39 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
Кстати интересно, как вы видите решение следующей задачи Есть потоки-эмиттеры, которые херачат «сообщения», которые в дальнейшем обрабатывают потоки-обработчики. Причём потоки-эмиттеры сами могут быть потоками-обработчиками каких-то других сообщений. Типичная реализация конвейера. Как я себе это вижу. Между потоками-эмиттерами и потоками-обработчиками должна быть лок-фри очередь «сообщений». Поток-обработчик берёт элемент очереди, если нифига не получил - значит простаивает. Так вот мне интересно, кто как организовывает это простаивание. Можно разу идти на новую итерацию, можно сделать pause, можно SwitchToThread (как это в POSIX?), можно делать Sleep(0) или Sleep(1) Лично я делаю счётчик, и в зависимости от счётчика простоя - вызываю тот или иной метод. Кто что думает? Мне данный простой вообще не нравится. Какой-то он не умный. Говорят, в новых виндах есть ивент на модификацию памяти. Но не понятно, насколько он эффективен. И нужно кроссплатформенное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 10:18 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
Как венда работает - непостижимо. У ней внутре потоков больше, чем звезд на небе и менеджеров памяти, кроме Heap-функций нету... Напридумывают себе гамаков, а потом трудности мужественно преодолевают. Все вроде уже написано, включая обход подводных граблей, в http://www.sql.ru/forum/781947/nayti-v-pdf-knigu-multithreading-the-delphi-way-martin-harvey ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 10:42 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, У меня есть многопоточный список строк для чего-то подобного. Поток, принимающий сообщения, просто засыпает в ожидании строки в списке: Код: pascal 1. 2. 3. 4. авторВсе вроде уже написано, включая обход подводных граблей, в Многое уже придумано до нас. Только что вместо того, что бы изучать предмет выдумывают гору своих костылей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 12:06 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUПоток-обработчик берёт элемент очереди, если нифига не получил - значит простаивает. Так вот мне интересно, кто как организовывает это простаивание. Можно разу идти на новую итерацию, можно сделать pause, можно SwitchToThread (как это в POSIX?), можно делать Sleep(0) или Sleep(1)Не совсем понимаю, почему не подходит обычный event (который взводится при добавлении нового элемента в общую очередь) и waitfor на него во всех потоках-оброботчиках? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 12:09 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
YuRockобщую очередьНеправильно выразился. Тут же не очередь, а список заданий, как я понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 12:11 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
schiКак венда работает - непостижимо. У ней внутре потоков больше, чем звезд на небе и менеджеров памяти, кроме Heap-функций нету... Напридумывают себе гамаков, а потом трудности мужественно преодолевают. Все вроде уже написано, включая обход подводных граблей, в http://www.sql.ru/forum/781947/nayti-v-pdf-knigu-multithreading-the-delphi-way-martin-harvey Действительно, непостижимо. Обнаружив в теме что-то знакомое (хоть слово), некоторые люди стараются сразу же в этой теме отметиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 13:46 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
YuRockНе совсем понимаю, почему не подходит обычный event возможно из-за экономии на sysenter. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 15:09 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
kep-koYuRockНе совсем понимаю, почему не подходит обычный event возможно из-за экономии на sysenter.Sleep дает эту экономию? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 15:37 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
YuRock, sleep только когда уже-ещё нет элементов, а wait будет для каждого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 20:32 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
Вот вы тут умничаете насчёт каких-то авторов в интернете А про лок-фри стеки и очереди я там ни слова не увидел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 20:45 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
чччД - мощный старик-теоретег ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 20:51 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUВот вы тут умничаете насчёт каких-то авторов в интернете А про лок-фри стеки и очереди я там ни слова не увидел мне достаточно очередей с блокировками на запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 20:53 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
defecator, Сомневаюсь Ибо если ты про TMultiReadExclusiveWriteSynchroniser, то очередь реализуется через запись, а значит смысла в нём меньше, чем в критической секции или спинлоке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 21:22 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUdefecator, Сомневаюсь Ибо если ты про TMultiReadExclusiveWriteSynchroniser, то очередь реализуется через запись, а значит смысла в нём меньше, чем в критической секции или спинлоке нет. у меня своё самописное (и без генерикофф) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 21:31 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
kep-koYuRock, sleep только когда уже-ещё нет элементов, а wait будет для каждого.Нет, wait тоже будет только если элементов нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 21:44 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
defecator, Ну и какой тогда смысл твоего кода Если он не может дженерики ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 22:01 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUdefecator, Ну и какой тогда смысл твоего кода Если он не может дженерики ) мой код зарабатывает мне бабло. А твой ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2018, 22:09 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
defecator, Бабло любой может зарабатывать Ты попробуй интересный код напиши. А не быдлокодину для второклассника ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 00:22 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUdefecator, Бабло любой может зарабатывать Ты попробуй интересный код напиши. А не быдлокодину для второклассника Пример ложных ценностей, даже уже не типичный, а гипертрофированный. В твоих попытках что-то "оптимизировать" ценного не больше, чем в умении плеваться жеваной бумагой через трубочку. Но так как ты неспособен это понять - считай, что я сейчас говорил не с тобой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 01:28 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
чччД, Просто ты не далёкий человек. Инженерная деятельность, да и вообще практически любая - это что-то оптимизировать. Дефекатор оптимизирует деятельность охранников или кого-то там. 1С-ники оптимизируют деятельность бухгалтеров. Работники розничной торговли оптимизируют поставку продуктов питания в твой холодильник. Практически любой бизнес и любая деятельность - оптимизация. И моя оптимизация - это лишь часть оптимизации, которая всем нужна. Уверен, даже твой элементарный код на сообщениях кому-то нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 08:10 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
чччДschiКак венда работает - непостижимо. У ней внутре потоков больше, чем звезд на небе и менеджеров памяти, кроме Heap-функций нету... Напридумывают себе гамаков, а потом трудности мужественно преодолевают. Все вроде уже написано, включая обход подводных граблей, в http://www.sql.ru/forum/781947/nayti-v-pdf-knigu-multithreading-the-delphi-way-martin-harvey Действительно, непостижимо. Обнаружив в теме что-то знакомое (хоть слово), некоторые люди стараются сразу же в этой теме отметиться.вредная книжка для неокрепших неофитов, не рекомендую читать - какой-то сборник детских шалостей с очередями в винде давно уже всё решено с помощью IoCompletionPort , быстрее только спецреализации которые ещё отлаживать зашибёшся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 08:41 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
чччД, ты используешь ZeroMQ давно. В тырнете почитал, вроде как она уже давно не поддерживается и ей на замену пришла Nanomsg. А ей не пользовался, не сравнивал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 10:34 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
cptngrb, Как раз все наоборот. Нано - разработка одного-единственного человека, который решил переделать зеро с нуля, его нано (как и его предыдущие попытки) заглохла. А зеро - поддерживается большой корпорацией, выходят новые релизы и постоянные правки и обновления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 11:21 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
чччД, крутяк, попробую прикрутить к своему проекту ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 11:27 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
чччД... А зеро - поддерживается большой корпорацией, выходят новые релизы и постоянные правки и обновления. https://github.com/zeromq/libzmq/releases ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 11:37 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)чччДпропущено... Действительно, непостижимо. Обнаружив в теме что-то знакомое (хоть слово), некоторые люди стараются сразу же в этой теме отметиться.вредная книжка для неокрепших неофитов, не рекомендую читать - какой-то сборник детских шалостей с очередями в винде давно уже всё решено с помощью IoCompletionPort , быстрее только спецреализации которые ещё отлаживать зашибёшся вот, кстати, да. У меня IoCompletionPort используется в системе видеонблюдения, а там потоки данных между тредами обработки ого-го какие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 11:51 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
defecator, IOCP тоже прикольно, но только Windows к сожелению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 12:19 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
чччДМожет быть, если код, реализующий процедуру задачи нити, оформлять строго в виде отдельного модуля, то проблем с нежелательным изменением памяти станет меньше? Нет видимости - нет и проблем. Думаю, это борьба с симптомами, которая сама по себе ничем не поможет, а только сделает код более уродливым. Действительное содержание мысли, как я понимаю - борьба с общими данными методом copy on demand. Технология применяемая, в определённых случаях уместная и правильная, в определённых случаях плохая и неудобная. Ну просто для примера, у меня был проект, где этот подход потребовал бы примерно две лишних секунды на каждый server call. По мне, это чрезмерные траты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 14:10 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
softwarer, Каждому 'паттерну' своё место. Возможно в какой-то ситуации описанный ТС метод-паттерн и полезен. Но не всегда и не везде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 17:22 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUинтересно, как вы видите решение следующей задачи Есть потоки-эмиттеры, которые херачат «сообщения», которые в дальнейшем обрабатывают потоки-обработчики. Причём потоки-эмиттеры сами могут быть потоками-обработчиками каких-то других сообщений. Типичная реализация конвейера. Как я себе это вижу. Между потоками-эмиттерами и потоками-обработчиками должна быть лок-фри очередь «сообщений». Поток-обработчик берёт элемент очереди, если нифига не получил - значит простаивает. Так вот мне интересно, кто как организовывает это простаивание. Можно разу идти на новую итерацию, можно сделать pause, можно SwitchToThread (как это в POSIX?), можно делать Sleep(0) или Sleep(1)можно вместо 0/1 и параметр придумать SOFT FOR YOUМне данный простой вообще не нравитсядык если есть что делать то сразу след. итерация а иначе если нечем заняться то можно и поспать малость ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 09:23 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)с очередями в винде давно уже всё решено с помощью IoCompletionPort , быстрее только спецреализации которые ещё отлаживать зашибёшся Каким боком Input-output к организации очереди? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 12:00 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
Василий 2kealon(Ruslan)с очередями в винде давно уже всё решено с помощью IoCompletionPort , быстрее только спецреализации которые ещё отлаживать зашибёшся Каким боком Input-output к организации очереди? читай статью по ссылке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 12:20 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
defecatorчитай статью по ссылке Прочитал. Там файлы, пайпы и сокеты. Каким боком они к очередям? Или предлагается делать связь между потоками на пайпах или сокетах? Тоже вариант, конечно, но не особо хороший ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 14:34 |
|
||
|
Оформление кода multi-thread приложения.
|
|||
|---|---|---|---|
|
#18+
Василий 2, PostQueuedCompletionStatus + INVALID_HANDLE_VALUE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 14:40 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041060]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
114ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 540ms |

| 0 / 0 |
