メモリバリアとかで済むのであれば

そっちの方がいい気がしますねぇ。

mutexはBalkingパターンよりは軽いかもしれませんが...! nostr:note1zxhd5ee3fcvpnnkf8lgn66shqthsmzkmd7s3fk2zr0nwfypme5zsq0rhqk

Reply to this note

Please Login to reply.

Discussion

わー! ごげんご脳なのでメモリバリアが(それがなにかが分かっても)どういう需要を満たすものなのか無知ですが、たしかにこれで済むなら扱いやすそうですね🤔

自分の認識の話をします。

自分もにわかなので、違ったらすみません🙇‍♂️

メモリバリアはコンパイラの最適化などで実行順序の入れ替え戦が行われるのを抑止して、順序を指示してあげるための機構 だと思ってます。

mutexはクリティカルセクションを作るためのリソースが必要なのと

タスクの待ち合わせが起きるかと。

そのため、マルチスレッドで複数のプロセスのメモリの書き込み順を指定したい場合は

最適化された実行順序でmutexを使って待ち合わせを発生させるより

そもそもメモリの実行順序を指定してあげた方が、動作が軽くなるかと思ってます。

待ち合わせしなくてもメモリバリアでメモリ上の値がぶっ壊れないようなシチュエーションがあるかもしれないんですね👀 なんか新しい概念に触れられたのでいろいろ調べてみたいです🫨

Go言語だったら去年に

syumaiさんがメモリモデル勉強会を主催してたので、参考になるかもです

自分がメモリバリアに触れたのはC++なので、Go言語だとまた勝手が違うのかも??

https://www.youtube.com/live/5LHm0kA0ANE?si=2a1bbXvFDd3FKvKB

あ〜〜 動画面白そうですね、深いところまで説明されてそう、ありがとうございます〜〜〜〜〜🙇🙌🙇🙌🙇

メモリモデルは難しいですね...!

何か分かったら、Nostrで呟いて貰えると嬉しいっす(`・ω・´)

メモリモデルの話であれば「並行プログラミング入門」にも詳しめに書かれているのでおすすめです

https://www.oreilly.co.jp//books/9784873119595/

わあ!

ありがとうございます

😊🙇‍♂️😊🙇‍♂️😊

あー読もう読もうと思って積んでた本、メモリバリアに触れたこともありこれは読むしかないですね🙇🫂🙇🫂🙇