C++マルチスレッド一巡り読書会vol.18
開催日時
2022年2月9日(水) 19:30~21:00
開催URL
参加人数
4人
【同期化出力ストリーム[C++20]】
9章にちらっと出てきた
【同期化出力マニピュレータ[C++20]】
デフォルト動作だとflush操作をしてもバッファにためた文字列を転送しない
その挙動をemit_on_flushで変えることができる
なんで関数じゃなくてマニピュレータなのだろうか
結局printf使っちゃう
【スレッドローカル変数】
osyncstreamをthread_localにすればいろいろ解決しない?
グローバルに配置すれば関数をまたいで文字列を放り込める
そもそもthread_localつけれるのか?
どういうときにつかうのだろうか
文字列をスレッドごとにためてある程度の粒度で吐き出す
つまりosyncstream
オーバーヘッドがあるのでデバッグの時のため
つまりosyncstream
【キャッシュライン定数[C++17]】
false sharingってなに?
↑に説明があった
別々のスレッドが同じキャッシュラインをクリアしあってパフォーマンスが劣化しうる
2つの定数って違うとしたらどう違う
trueの方が小さい?
「False Sharing抑止を保証『する』キャッシュラインサイズ」?
【番外:スレッドと他機能との関係】
volatileキーワード
コルーチン(Coroutine)[C++20]
マルチスレッドと真逆
ちょっとずつ実行したい
今後に期待
どういうときに使う?
例えばイベントドリブンだと処理がバラバラ
ドラッグしたとき、ドロップしたとき
ボタンが押してから離れるまでを1つのコードで表せるようになるのではないかな
Transactional Memory[TM拡張]
すごい人に任せておけばいいやつかな
読了!
次回からは「C++20 コア言語機能」を読みたいと思います
お悩み雑談室