前スレ
C++相談室 part155
https://mevius.5ch.net/test/read.cgi/tech/1616555235/
探検
C++相談室 part156
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2021/05/19(水) 10:55:13.24ID:LZZifCH2980はちみつ餃子 ◆8X2XSCHEME
2021/08/08(日) 17:22:47.83ID:3b5W4SC5 >>979
言葉の様子からは昔の C++ (C++03 以前) は使ってたのかな?
と推察するけど、 C++03 と C++11 の間では大きな飛躍があって、
その後も変更は色々あるのでちょっとしたことをいちいち質問するのは効率悪いと思う。
ドキュメントを網羅的にわかりやすく整理しているとてもありがたいサイトがいくつかあって
仕様改定がどういうものだったのかもまとまっているので参考にするといいよ。
https://cpprefjp.github.io/lang/cpp11.html
https://ja.cppreference.com/w/cpp/11
言葉の様子からは昔の C++ (C++03 以前) は使ってたのかな?
と推察するけど、 C++03 と C++11 の間では大きな飛躍があって、
その後も変更は色々あるのでちょっとしたことをいちいち質問するのは効率悪いと思う。
ドキュメントを網羅的にわかりやすく整理しているとてもありがたいサイトがいくつかあって
仕様改定がどういうものだったのかもまとまっているので参考にするといいよ。
https://cpprefjp.github.io/lang/cpp11.html
https://ja.cppreference.com/w/cpp/11
981デフォルトの名無しさん
2021/08/08(日) 19:31:37.38ID:R0ImpkBa std::threadってなぜかスレッドが実行中かどうかを調べるだけの関数がないんだよね
絶対にあった方が良いと思うんだけどなんか理由があるのかな
絶対にあった方が良いと思うんだけどなんか理由があるのかな
982デフォルトの名無しさん
2021/08/08(日) 19:40:44.42ID:Cdmlpdjr joinableだけじゃ足りん?
983デフォルトの名無しさん
2021/08/08(日) 19:45:39.50ID:8fWNQyKy pthreadsにそういうAPIが無いからなぁ
984デフォルトの名無しさん
2021/08/08(日) 19:55:15.31ID:GYDyEW6S pthread_timedjoin_np()使えばいいじゃない
985デフォルトの名無しさん
2021/08/08(日) 20:02:19.74ID:8fWNQyKy none portableじゃないですかやーだー (でも使う)
標準としては難しそう
標準としては難しそう
986蟻人間 ◆T6xkBnTXz7B0
2021/08/08(日) 20:27:26.52ID:7BKdY7dG native handleをgetしてWaitForSingleObject使うとか
987デフォルトの名無しさん
2021/08/08(日) 20:52:17.07ID:GYDyEW6S >>985
nandemo portable の略だから大丈夫
nandemo portable の略だから大丈夫
988デフォルトの名無しさん
2021/08/08(日) 21:39:14.34ID:yBkpHZYz 普通にミューテックスで排他して状態管理せよ……
だいたいスレッドが動いているかどうかという1 bitだけを外部が欲しがるという用途は(join操作そのものを除き)あんま無く、
キュー的なブツに対するデータの排他的な出し入れが普通伴うはず……
だいたいスレッドが動いているかどうかという1 bitだけを外部が欲しがるという用途は(join操作そのものを除き)あんま無く、
キュー的なブツに対するデータの排他的な出し入れが普通伴うはず……
989デフォルトの名無しさん
2021/08/08(日) 21:44:02.93ID:yBkpHZYz ミューテックスで数千クロックサイクル浪費するのが嫌という向きは知らん
スピンロックとかdouble-checking lockみたいな対策になるかと思うが絶対安全かつポータブルな
方法というものは無くなる希ガス
スピンロックとかdouble-checking lockみたいな対策になるかと思うが絶対安全かつポータブルな
方法というものは無くなる希ガス
990デフォルトの名無しさん
2021/08/08(日) 22:18:09.18ID:GYDyEW6S >>988
速度重視でmap/unordered_mapでコンテナ作ってみたけどやっぱり仕様変更に耐えられるvector/listコンテナ最強的なオチに似たものある
速度重視でmap/unordered_mapでコンテナ作ってみたけどやっぱり仕様変更に耐えられるvector/listコンテナ最強的なオチに似たものある
991デフォルトの名無しさん
2021/08/08(日) 22:43:58.32ID:8fWNQyKy キューへの投入と取り出しがそれぞれ1スレッドだけならミューテックスを使わなくてもアトミック変数だけで排他出来る(OSに仲裁してもらわなくていい)
992デフォルトの名無しさん
2021/08/08(日) 23:27:24.23ID:yBkpHZYz OSの助けなしにどうやって待ち(と起床)を実現するつもりなんじゃ……
993デフォルトの名無しさん
2021/08/08(日) 23:43:25.11ID:2XV4yDHI スレッドが実行中か確認したいってどんなときなのかな?
確認したところで次の瞬間には終了してる可能性あるわけじゃん
終了を待機したいならjoinすればいいし実行中をなんのために確認したいのかよくわからん
確認したところで次の瞬間には終了してる可能性あるわけじゃん
終了を待機したいならjoinすればいいし実行中をなんのために確認したいのかよくわからん
994デフォルトの名無しさん
2021/08/09(月) 00:16:27.81ID:bkD+cive Linuxのpthread_mutexの実装で使われているfutexも競合しないタイミングならユーザランドだけで処理が完結する (OSが仲裁する必要があるのは競合する場合だけ)
> Futex operation occurs entirely in user space for the
> noncontended case. The kernel is involved only to arbitrate the
> contended case. As any sane design will strive for
> noncontention, futexes are also optimized for this situation.
>
> https://man7.org/linux/man-pages/man7/futex.7.html
キューが固定長, 投入スレッド1つ, 取り出しスレッド1つという条件でならアトミック変数2つ(読み出し位置, 書き込み位置)で「競合しない」ように出来るので, OSの仲裁が必要じゃなくなる
> Futex operation occurs entirely in user space for the
> noncontended case. The kernel is involved only to arbitrate the
> contended case. As any sane design will strive for
> noncontention, futexes are also optimized for this situation.
>
> https://man7.org/linux/man-pages/man7/futex.7.html
キューが固定長, 投入スレッド1つ, 取り出しスレッド1つという条件でならアトミック変数2つ(読み出し位置, 書き込み位置)で「競合しない」ように出来るので, OSの仲裁が必要じゃなくなる
995デフォルトの名無しさん
2021/08/09(月) 00:22:59.44ID:bkD+cive あと(pthread_mutexのようなネイティブの)mutexはそういう理由で大抵の場合は最速のロック機構になっているので, 自分で作るなら普通にmutex使った方がいいというのは同意
素人(俺とか)の考えたロックフリーデータ構造とか大抵設計か実装かその両方でバグが入る
素人(俺とか)の考えたロックフリーデータ構造とか大抵設計か実装かその両方でバグが入る
996デフォルトの名無しさん
2021/08/09(月) 07:54:40.07ID:eF2Q2UUf >>989
mutexが遅くてイヤならatomicじゃね?
mutexが遅くてイヤならatomicじゃね?
997デフォルトの名無しさん
2021/08/09(月) 09:47:15.53ID:TRAo/ccI >スレッドが実行中か確認したいってどんなときなのかな?
排他制御付きのキューを自力実装するときまれによくある……
キューがあふれそうになったときpushする側(producer)を待たせる作りにした場合、
popする側(consumer)はデータをpop後、producerが待っていたらその待ちを解除、
待っていなかったら何もしないという判断が居るのでこのためのフラグ
(producer側にpushを継続する意思があるかどうか、またはpush待ち中かどうかを表すフラグ)が居る
producerよりconsumerがいつも速い見込みでキューがあふれない前提(キューが必要に応じていくらでも大きくなる)
だったりその他(待ち解除が条件変数ではなくキューイングされるイベントだったり)だと無くてもよいから
ぜってー必要か、というとビミョーだがあった方がすっきり効率的なコードとして書ける
排他制御付きのキューを自力実装するときまれによくある……
キューがあふれそうになったときpushする側(producer)を待たせる作りにした場合、
popする側(consumer)はデータをpop後、producerが待っていたらその待ちを解除、
待っていなかったら何もしないという判断が居るのでこのためのフラグ
(producer側にpushを継続する意思があるかどうか、またはpush待ち中かどうかを表すフラグ)が居る
producerよりconsumerがいつも速い見込みでキューがあふれない前提(キューが必要に応じていくらでも大きくなる)
だったりその他(待ち解除が条件変数ではなくキューイングされるイベントだったり)だと無くてもよいから
ぜってー必要か、というとビミョーだがあった方がすっきり効率的なコードとして書ける
998デフォルトの名無しさん
2021/08/09(月) 09:51:30.16ID:TRAo/ccI999デフォルトの名無しさん
2021/08/09(月) 09:55:16.95ID:TRAo/ccI となるようにインクリメントするカウンタの意味を仕向ける
1000デフォルトの名無しさん
2021/08/09(月) 09:55:21.66ID:eF2Q2UUf >>998
アンカーミスってねい?
アンカーミスってねい?
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 81日 23時間 0分 8秒
新しいスレッドを立ててください。
life time: 81日 23時間 0分 8秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- たぬかなの“結婚隠し”に「弱者男性ビジネス」の声…本人が異例の対応「支払いの履歴持ってきてくれたら返金するから連絡してや」 [muffin★]
- 【物価高対策】「おこめ券を配布しません」大阪府交野の市長が明言「経費率が高い」「今高い米をムリして…」 [1ゲットロボ★]
- 舛添要一「日本は亡国への道をひた走り」「相対的国力は中国が増大し日本が低下している」 [冬月記者★]
- 【地方】「もうヤメとけ、また移住者様が帰っちゃうぞ」田舎の「いじめ体質」★3 [七波羅探題★]
- 【サッカー】2035年アジア杯、日韓での共催模索の動きに 宮本恒靖会長「チャンスがあれば手を挙げたい。共催も一つの形…」 [冬月記者★]
- 【石破政権】🥐パン屋の倒産、大幅減 インバウンド需要や「パン食」シフトで復活‼ [1ゲットロボ★]
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1813
- 【U-NEXT】プレミアリーグ総合 ★37
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap606
- 巨専】 ★3
- とらせん IP
- こいせん 全レス転載禁止
- 外国人「初めての着物?嬉しい❤」 ⇦普通の日本人「全然似合ってない」「気持ち悪い」「無理」「日本文化を破壊するな」 [455031798]
- 偉い人「消化を促進するためには左向きで横になった方がいい」←昔は右向きだったじゃん
- TBS山本恵里伽アナ「今の日本社会は世界平和や反戦など当たり前のことを言えない空気になっている」これもう新しい戦前だろ高市 [931948549]
- 老害「いいからこの漫画読め!面白いから!」→本当に面白かった漫画 [339035499]
- ワクチン打っちゃった正直な理由WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- 俺は今から薄皮クリームパンを食べる
