<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: синхронизация функции main  и колбеков]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме синхронизация функции main  и колбеков форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Sun, 03 May 2026 12:41:25 +0300</pubDate>
		<item>
			<title>синхронизация функции main  и колбеков</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57779/topic6685/">синхронизация функции main  и колбеков</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			<a class="blog-p-user-name" id="bp_FIpP8tCK" href="/user/62/" bx-tooltip-user-id="62">nikolz</a>, А я полагаю, что останов функции main c помощью sleep вполне нормальное решение разработчиков. Во всяком случае, оно намного лучше некоторых других их решений, про которые я не раз говорил.<br /><br />Чтобы показать полную ненужность предлагаемого способа никаких тестов не проводил, а тупо заглянул в свои логи - они у меня (на этом компе) ведутся с середины апреля, так я взял период с 1 мая по 31 августа и тупо посчитал количество вызовов коллбеков за всё это время. Получилось 5037 у одного брокера и 2081 у другого. Правда, цифры эти надобно умножить на 3, поскольку прерывания OnTtade приходят пачками, но и в этом случае цифры смехотворно малы. За всё время моей работы в Квике никакой &quot;постоянной активации потока и бесполезной загрузки ядра&quot;, равно как и &quot;пропусков завершения работы колбеков&quot; ни разу не заметил. Опять микросекунды ловим? Ну-ну... когда коту делать нечего... Так что &quot;библиотеку&quot; свою засуньте... сами знаете куда. <br />
			<i>03.09.2021 18:41:36, Владимир.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57779/topic6685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57779/topic6685/</guid>
			<pubDate>Fri, 03 Sep 2021 18:41:36 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>синхронизация функции main  и колбеков</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57776/topic6685/">синхронизация функции main  и колбеков</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			сделал библиотеку на луа для работы с системными событиями. <br />Если надо, стучите. <br />
			<i>03.09.2021 18:28:22, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57776/topic6685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57776/topic6685/</guid>
			<pubDate>Fri, 03 Sep 2021 18:28:22 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>синхронизация функции main  и колбеков</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57774/topic6685/">синхронизация функции main  и колбеков</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			sleep позволяет усыпить main не менее чем на 1 ms что примерно в 50 раз больше времени активации main колбеком.<br />Но чтобы ядро не грело воздух зря, надо ставить sleep на 100 ms.<br />А это уже в 5000 раз больше времени активации main.<br />---------------------<br />кроме того, интервал прихода информации с сервера брокера составляет примерно 70 ms (у меня) <br />Поэтому при sleep 100 ms может не только пропускать колбеки, но и создать затор поступающей информации с торгов.<br />т е легко получить тормознутый робот.<br />------------------ <br />
			<i>03.09.2021 18:24:18, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57774/topic6685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57774/topic6685/</guid>
			<pubDate>Fri, 03 Sep 2021 18:24:18 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>синхронизация функции main  и колбеков</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57772/topic6685/">синхронизация функции main  и колбеков</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			При этом запуск теста на загрузке процессора отражается слабо (я особо &nbsp;не заметил). загрузка процессора в среднем 10%. <br />
			<i>03.09.2021 18:14:48, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57772/topic6685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57772/topic6685/</guid>
			<pubDate>Fri, 03 Sep 2021 18:14:48 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>синхронизация функции main  и колбеков</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57770/topic6685/">синхронизация функции main  и колбеков</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			В предыдущем тесте в вычислении времени включено время преобразования значений счетчиков в строку<br />Поэтому время немного завышено<br />Вот показания лог файла чистой задержки активации main колбеком:<br />....<br />21&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,37,0<br />31&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,37,0<br />22&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,38,0<br />23&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,39,0<br />21&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,40,0<br />20&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,41,0<br />21&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,42,0<br />21&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,43,0<br />23&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,44,0<br />21&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,45,0<br />20&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,46,0<br />21&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,47,0<br />20&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,48,0<br />33&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,49,0<br />20&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,50,0<br />20&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,51,0<br />21&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,52,0<br />20&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,53,0<br />20&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,54,0<br />21&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,55,0<br />28&gt;0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,55,0<br />...<br />Т е это время менее 30 мкс . <br />
			<i>03.09.2021 18:10:57, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57770/topic6685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57770/topic6685/</guid>
			<pubDate>Fri, 03 Sep 2021 18:10:57 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
		<item>
			<title>синхронизация функции main  и колбеков</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum10/message57769/topic6685/">синхронизация функции main  и колбеков</a></b> в форуме <a href="http://forum.quik.ru/forum10/">Программирование на языке Lua</a>. <br />
			Полагаю , что останов функции main c помощью sleep неудачное решение разработчиков.<br />--------------------------------<br />Сам использую останов потока системным событием Event.<br />Неоднократно предлагал разработчикам реализовать останов потока системным событием Event.<br /> Но воз и ныне там.<br />------------------------------<br />Чтобы показать наглядно эффективность предлагаемого способа реализовал следующий тест.<br />-----------------------<br />Во всех колбеках поставил счетчик вызова и старт таймера.<br />В функции main поставил &nbsp;останов таймера и запись &nbsp;в лог счетчиков событий всех колбеков и прошедшее время с момента вызова очередного колбека. <br />----------------------<br />Вот фрагмент лог файла:<br />...<br />93&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15784,95846,0<br />83&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15784,95847,0<br />90&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15784,95848,0<br />129&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15785,95848,0<br />110&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15786,95848,0<br />261&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15786,95850,0<br />431&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15786,95850,0<br />88&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15786,95851,0<br />85&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15786,95852,0<br />131&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15787,95852,0<br />113&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15788,95852,0<br />162&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15788,95853,0<br />91&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15788,95854,0<br />93&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15789,95854,0<br />294&gt;0,0,0,0,11,11,0,0,0,0,0,0,0,0,15789,95855,0<br />....<br />На первой позиции время в микросекундах, прошедшее с момента вызова терминалом колбека до момента активации потока main скрипта. <br />далее через запятую счетчики вызова колбеков.<br />--------------------------------------------<br />Как видно из лог файла это время составляет примерно 100 мкс (компьютер слабый, WIN XP). &nbsp;<br />--------------------------<br />Получается, что использование функции sleep либо приведет к постоянной активации потока и бесполезной загрузки ядра,<br /> либо к пропуску завершения работы колбеков.<br />Обе ситуации плохо. <br />
			<i>03.09.2021 17:52:26, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum10/message57769/topic6685/</link>
			<guid>http://forum.quik.ru/messages/forum10/message57769/topic6685/</guid>
			<pubDate>Fri, 03 Sep 2021 17:52:26 +0300</pubDate>
			<category>Программирование на языке Lua</category>
		</item>
	</channel>
</rss>
