C++マルチスレッド一巡り読書会vol.12
開催日時
2021年11月10日(水) 19:30~21:00
開催URL
参加人数
7人
時間が来るまでこれを見てます
https://www.youtube.com/watch?v=8SP1w7i8r-Y
【セマフォ】
どういうときセマフォ使う?
セガサターンで使った
CPUが2つあってセマフォをとってグローバル変数にアクセスしたりしてた
Multi Producer Single Consumerパターンでセマフォを使う
キューの最大数がセマフォの最大カウンタ値になる
ブロッキングしなくなる
Rustにはセマフォは入ってない
チャネルを使う
Sender/Recieverモデル
【基本の待機/通知処理[C++20]】
イベント駆動でよく使う
イベントがきたらカウントする
【待機試行[C++20]】
セマフォ=腕木式信号機のこと
Spurious Failureでググったらyohhoyさんのtogetterが出てきた
【タイムアウトサポート[C++20]】
条件変数でも出てきた指定時間(時刻)待つ関数
タイムアウトってどういう需要があるの?
Botとかで1000ミリ秒以内に処理できなければタイムアウトする出力を出す、みたいな
タイムアウトは最終手段みたいな状況かな?
2つの条件を待って、その1つがタイマーだっただけでそこを重要視するのはどうなの?
よく使われるので標準で用意した感じ(各自バラバラに作られるくらいなら)
「タイムアウト待機関数が提供される理由:タイムアウト実現のためにユーザに第3者スレッドを用意させるのは現実的で無いからかなぁ」
【バイナリセマフォとミューテックス】
バイナリセマフォはミューテックスと同等の機能になる
セマフォの方が速い?
うまく使えば(うまく使えば)
プリミティブなので
【Future/Promise】
Scalaがこの単語を前から使ってる
C++11から入ってたんだこれ…
認知度低そう
ECMAScriptの方がC++11よりも遅い
【基本のFuture/Promise】
futureが値を取り出す方
42
【共有Future】
futureオブジェクトからの結果取得は1回だけ
shared_futureオブジェクトに変換すると結果取得は何度でも
例外だって何度でも
今日はここまで
次回は【future<void>】から
お悩み雑談室
配列newで引数付きコンストラクタって呼べるんですね
Brace-init-listというらしい
std::arrayの個数も推論したい
C++のテストでおススメあります?
知らない人はC++もぐり(スミマセン…)
google testはダメ
いい本です。とりあえず買ってください
後半はほぼRustだけど
Rustの知識が無くてもいける?
読むだけならいけるのでは