メモリバリアとかで済むのであれば
そっちの方がいい気がしますねぇ。
mutexはBalkingパターンよりは軽いかもしれませんが...! nostr:note1zxhd5ee3fcvpnnkf8lgn66shqthsmzkmd7s3fk2zr0nwfypme5zsq0rhqk
メモリバリアとかで済むのであれば
そっちの方がいい気がしますねぇ。
mutexはBalkingパターンよりは軽いかもしれませんが...! nostr:note1zxhd5ee3fcvpnnkf8lgn66shqthsmzkmd7s3fk2zr0nwfypme5zsq0rhqk
わー! ごげんご脳なのでメモリバリアが(それがなにかが分かっても)どういう需要を満たすものなのか無知ですが、たしかにこれで済むなら扱いやすそうですね🤔
自分の認識の話をします。
自分もにわかなので、違ったらすみません🙇♂️
メモリバリアはコンパイラの最適化などで実行順序の入れ替え戦が行われるのを抑止して、順序を指示してあげるための機構 だと思ってます。
mutexはクリティカルセクションを作るためのリソースが必要なのと
タスクの待ち合わせが起きるかと。
そのため、マルチスレッドで複数のプロセスのメモリの書き込み順を指定したい場合は
最適化された実行順序でmutexを使って待ち合わせを発生させるより
そもそもメモリの実行順序を指定してあげた方が、動作が軽くなるかと思ってます。
待ち合わせしなくてもメモリバリアでメモリ上の値がぶっ壊れないようなシチュエーションがあるかもしれないんですね👀 なんか新しい概念に触れられたのでいろいろ調べてみたいです🫨
Go言語だったら去年に
syumaiさんがメモリモデル勉強会を主催してたので、参考になるかもです
自分がメモリバリアに触れたのはC++なので、Go言語だとまた勝手が違うのかも??
https://www.youtube.com/live/5LHm0kA0ANE?si=2a1bbXvFDd3FKvKB
あ〜〜 動画面白そうですね、深いところまで説明されてそう、ありがとうございます〜〜〜〜〜🙇🙌🙇🙌🙇