前スレ
C++相談室 part156
https://mevius.5ch.net/test/read.cgi/tech/1621389313/
C++相談室 part157
■ このスレッドは過去ログ倉庫に格納されています
2021/08/09(月) 10:57:31.60ID:JaaB5Egp
2デフォルトの名無しさん
2021/08/09(月) 11:24:40.26ID:M3I2CbwW2021/08/09(月) 11:43:30.76ID:GC6B710d
>スレッドが実行中か確認したいってどんなときなのかな?
たとえばゲームでセーブするとき、
メインの処理はブロックしたくないので別スレッドで実行しつつ「セーブ中です」みたいな表示を出し、終了したら消す
みたいな時かな
たとえばゲームでセーブするとき、
メインの処理はブロックしたくないので別スレッドで実行しつつ「セーブ中です」みたいな表示を出し、終了したら消す
みたいな時かな
2021/08/09(月) 11:48:24.98ID:OWI9S7jW
2021/08/09(月) 11:56:53.44ID:GC6B710d
>>4
もちろん方法ならいくらでもあると思うけど、別スレッドのインスタンス1つで全部済むなら、そっちの方がすっきりするし楽でしょ
もちろん方法ならいくらでもあると思うけど、別スレッドのインスタンス1つで全部済むなら、そっちの方がすっきりするし楽でしょ
2021/08/09(月) 12:12:57.14ID:GC6B710d
>>4,5
あぁ、いやそうじゃないか
ゲームのあらゆる部分をスレッドセーフで設計すれば良いのかもしれないけど、
ゲームのメインの状態遷移なんてわざわざマルチスレッド化するような重い処理でもないので、
その辺の表示とかはシングルスレッド前提で書いてるわけよ、もちろんそのほうが楽だからw
あぁ、いやそうじゃないか
ゲームのあらゆる部分をスレッドセーフで設計すれば良いのかもしれないけど、
ゲームのメインの状態遷移なんてわざわざマルチスレッド化するような重い処理でもないので、
その辺の表示とかはシングルスレッド前提で書いてるわけよ、もちろんそのほうが楽だからw
2021/08/09(月) 12:17:21.54ID:qYrd5+ip
この「実行中」が実際にタイムスライスが割り当てられている状態を意味しているんであれば
OSにもよるが実装が大変な割に実際に役立つシーンは限られるような。
>>4であればjoinableで十分だろうし。
OSにもよるが実装が大変な割に実際に役立つシーンは限られるような。
>>4であればjoinableで十分だろうし。
2021/08/09(月) 12:25:08.93ID:DVzh2mox
別スレッド処理の進捗を他スレッドから閲覧するためのパラメータを使っってる時点で、お察し
2021/08/09(月) 12:40:21.77ID:S8n0VVLE
前スレ997は色々勘違いしてそうな気がする
普通pushしようとしてキューが満杯なら何らかの同期メカニズムで自分を待ち状態にする
pop側はpopしたらその同期メカニズムに対して待ちを解除するだけだからスレッド自体が実行中かどうかなんて見る必要がない
普通pushしようとしてキューが満杯なら何らかの同期メカニズムで自分を待ち状態にする
pop側はpopしたらその同期メカニズムに対して待ちを解除するだけだからスレッド自体が実行中かどうかなんて見る必要がない
2021/08/09(月) 13:35:16.98ID:eF2Q2UUf
std::condition_variable
11ハノン ◆QZaw55cn4c
2021/08/09(月) 13:52:46.20 正直いって pthread の条件変数は私には理解が難しく、私は安易に win32api のクリティカルセッション&シグナルを多用してしまうのです
ただし、スタベーションに陥ることが多々あり、どうもクリティカルセクション・シグナルでは駄目なパターンがあるかもしれない、とヒヤヒヤしています‥‥
ただし、スタベーションに陥ることが多々あり、どうもクリティカルセクション・シグナルでは駄目なパターンがあるかもしれない、とヒヤヒヤしています‥‥
2021/08/09(月) 14:01:28.39ID:TRAo/ccI
>>2
別に
Producer(pushする側)がこれからpushするのを待っている場合、
Consumer(popする側)はキューサイズ(キューの中の要素数)を見ても
Producerが待っているのかどうかの情報を得られない
なぜなら、まだpushしていないからな
別に
Producer(pushする側)がこれからpushするのを待っている場合、
Consumer(popする側)はキューサイズ(キューの中の要素数)を見ても
Producerが待っているのかどうかの情報を得られない
なぜなら、まだpushしていないからな
2021/08/09(月) 14:14:45.62ID:TRAo/ccI
2021/08/09(月) 14:32:36.91ID:JaaB5Egp
2021/08/09(月) 14:33:19.09ID:S8n0VVLE
>>13
いや、スレッドの実行状態なんて見てもしゃーないって話
pop後にpush側が実行中だとしてもそのチェック直後にpushするかも知れん
要するにスレッドの実行状態の変化は排他制御できないから意味がないって話
pop前にいちいちスレッドをsuspendしてチェックしてからresumeするとかするならできるかもしれないけどw
いや、スレッドの実行状態なんて見てもしゃーないって話
pop後にpush側が実行中だとしてもそのチェック直後にpushするかも知れん
要するにスレッドの実行状態の変化は排他制御できないから意味がないって話
pop前にいちいちスレッドをsuspendしてチェックしてからresumeするとかするならできるかもしれないけどw
2021/08/09(月) 14:34:07.65ID:aCXIbwxy
std::vectorの部分ベクトルの切り出しって絶対O(要素数)の計算量かかりますよね?
2021/08/09(月) 14:40:14.51ID:fi8SjIox
「部分ベクトルの切り出し」とは何かを定義せよ。
2021/08/09(月) 14:47:54.30ID:eF2Q2UUf
こういうの?
std::vector<int> a{ 4, 6, 4, 9 };
std::vector<int> b(a.begin() + 1, a.begin() + 2);
std::vector<int> a{ 4, 6, 4, 9 };
std::vector<int> b(a.begin() + 1, a.begin() + 2);
2021/08/09(月) 15:11:52.58ID:KzU8BZnC
参照できればいいのか、コピーがいるのか、切り出し位置はわかってるのか、検索を伴うのか、
その辺の条件もなしに計算量の議論なんて出来んわ
その辺の条件もなしに計算量の議論なんて出来んわ
2021/08/09(月) 16:11:11.49ID:6v1cUfUr
クラスAの内部にクラスBがある (入れ子クラス) として、BからAのメンバにアクセスするテクってないんですかね?
アクセスしたいメンバをstaticにはしたくないです
アクセスしたいメンバをstaticにはしたくないです
2021/08/09(月) 16:20:25.36ID:GC6B710d
>>20
AへのポインタをBに定義して、コンストラクタかなんかで渡せばいいのでは?
AへのポインタをBに定義して、コンストラクタかなんかで渡せばいいのでは?
22はちみつ餃子 ◆8X2XSCHEME
2021/08/09(月) 16:48:43.56ID:OWI9S7jW >>20
クラスの中でクラスを定義しても A の名前空間の中に B が定義されるってだけ。
B のオブジェクトを作っても A のオブジェクトが存在しないなら存在しないオブジェクトのメンバにはアクセスできない。
A のオブジェクト (インスタンス) と B のオブジェクトの間には勝手に関係が出来たりもしない。
関係ないのに関係あるように見えて初心者が混乱してるのはどっかの質問サイトでも見たことがある。
よく理解できてないならまずはクラスの定義を入れ子にせずにやってみるのがオススメ。
クラスの中でクラスを定義しても A の名前空間の中に B が定義されるってだけ。
B のオブジェクトを作っても A のオブジェクトが存在しないなら存在しないオブジェクトのメンバにはアクセスできない。
A のオブジェクト (インスタンス) と B のオブジェクトの間には勝手に関係が出来たりもしない。
関係ないのに関係あるように見えて初心者が混乱してるのはどっかの質問サイトでも見たことがある。
よく理解できてないならまずはクラスの定義を入れ子にせずにやってみるのがオススメ。
2021/08/09(月) 16:52:51.13ID:S8n0VVLE
2021/08/09(月) 16:59:35.77ID:eF2Q2UUf
2021/08/09(月) 17:00:48.11ID:hJGoZPOe
絶対レビュー通らないウンココードでよいなら
(char*)this + offsetof(A, b)でなんとかならんのか
(char*)this + offsetof(A, b)でなんとかならんのか
2021/08/09(月) 17:33:38.90ID:GC6B710d
class Aをtemplate化して、class BでAを継承すれはメンバにはアクセスできるけど、たぶんそういうことがしないんじゃないんだろうなw
コンテナクラスのイテレータから親クラスインスタンスのメンバにアクセスしたいとかか?
コンテナクラスのイテレータから親クラスインスタンスのメンバにアクセスしたいとかか?
2021/08/09(月) 17:48:31.00ID:eF2Q2UUf
リファレンサを作るときなんか親オブジェクトへのポインタ使うね
2021/08/09(月) 20:07:17.09ID:XVy1LhuX
2021/08/10(火) 00:55:38.92ID:rk6SLsdN
親オブジェクトへのポインタをうっかり共有ポインタにすると循環参照の原因になる(小並感)
2021/08/10(火) 03:53:30.08ID:mPLpHQ1a
+=の引数が1のときは++を呼ぶようにする方法ってありますか
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… [BFU★]
- 高市早苗首相。財務省の経済対策草案を「しょぼすぎる」と一刀両断し自らテコ入れ [バイト歴50年★]
- 立憲・野田代表が主張 台湾有事答弁で「質問者批判は筋違い」「答弁がおかしい」「高市総理迎合のネット世論は危険」★4 [♪♪♪★]
- 日中関係悪化で「日本からもうすぐパンダがいなくなる」 中国SNSでトレンド1位に★2 [♪♪♪★]
- 【STARTO ENTERTAINMENT】timelesz、メンバーの不適切言動を謝罪「不用意かつモラルに反した発言であった」 全員の署名入りでコメント [Ailuropoda melanoleuca★]
- 【旧統一教会】年度内に解散命令請求に結論 教団は最終主張書面を東京高裁に提出 [1ゲットロボ★]
- ひろゆきが高市首相を批判「一部の支持者がスッキリしただけで、大多数の日本人にとっては損だよね」 [834922174]
- 【高市悲報】中国「国連安保理の許可なしに日本を攻撃可能だ」 [115996789]
- 【実況】白銀ノエルと博衣こよりのえちえちパワフルプロ野球
- 【速報】高市早苗「答弁撤回はしない」経済制裁へ★2 [931948549]
- 【んな専🏡】ルーナイトたち~1週間お疲れ様なのらぁ~(・o・🍬)🏰
- 【んな専🏡】華金もんなっしょいとはやれやれなのらね🍬(・o・🍬)🏰
