<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Синхронизация 2 потоков</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/8839.html</link>
    <description>Помогите пожалуйста разобраться.&lt;br&gt;&lt;br&gt;Пытаюсь увеличить производительность программы.&lt;br&gt;Есть 2 потока, оба работают с одним объектом, код не сильно сложный - получить объект или вернуть объект. Синхронизация выполнена на mutex. Приложение написано на С и работает на железке c PowerPC e500v2 под Linux. И важно, чтобы оно работало как можно быстрее.&lt;br&gt;&lt;br&gt;Хотелось бы спросить у знающих людей, так как вроде мьютексы довольно тяжежеловесны, возможно ли увеличить производительность за счёт использования другого механизма синхронизации, сейчас планирую почитать про них, но времени не так много - spinlock, semaphore, condition variable, RCU (liburcu) или использовании неких других примитивов - видел в каком-то коде функцию __sync_fetch_and_add для синхронизации и что-то ещё наверняка есть. Просто я под Linux не писал ничего, только планирую изучать данную платформу, но на работе есть апликация одна и сейчас её решили улучшить.  &lt;br&gt;</description>

<item>
    <title>атомарные синхронизации (d1987)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/8839.html#2</link>
    <pubDate>Tue, 31 Aug 2010 06:39:02 GMT</pubDate>
    <description>Спасибо за столь развёрнутый ответ!&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>атомарные синхронизации (Вова)</title>
    <link>https://opennet.dev/openforum/vsluhforumID9/8839.html#1</link>
    <pubDate>Tue, 31 Aug 2010 06:23:34 GMT</pubDate>
    <description> Если критическая секция кода, оборачиваемая мутексом, действительно несложна, то есть  пара инкрементов/присвоение указателей/итп, то использование __sync* функций http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html будет оптимальным.  В теории, в такой ситуации подойдёт спинлок, но фактически выигрышей от спинлока не наблюдается даже сравнительно с обычным локом на pthread_mutex, видимо, дело в том, что busy-wait слишком дорог. Условные переменные и семафоры ещё более тяжелы, чем просто мутексы, у них специфическая область применения.  Упомянутые &quot;luburcu RCU&quot; - не использовал, ничего сказать не смогу. &lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
