マルチスレッドのバリアが役立つケースってどんなの?

1: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 07:39:42.757 ID:jG/qelcu0.net
バリアーが役に立つケースってどんなの?
サンプルプログラムを書こうとしてる

2: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 07:41:28.366 ID:CMboZjJtE.net
バリアーフリーって言葉があるだろ?つまり自由だよ

 

3: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 07:42:58.989 ID:jG/qelcu0.net
バリアーってのはスレッドの集合地点
例えば5つのスレッドが待ち合わせるバリアーを作成して
5つのスレッドに処理を分割する
そしてすべてのスレッドが処理を完了するのを待つ

スポンサーリンク

4: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 07:48:16.577 ID:jG/qelcu0.net

スレッドの処理の完了を待つ機能は別にあって
それとは別にバリアーが役に立つケースが思いつかない

他の言語でも同じような概念はあるはずだけどJavaのCountDownLatchな

 

6: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 07:56:52.832 ID:vLNEF6nV0.net

役に立つというより
やっとかなきゃあかんて感じじゃね?

そこまでシビアな同期を要するもんを作ったことないけど

 

7: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 07:57:25.529 ID:jG/qelcu0.net

そうなんだろうがその具体的なケースが思いつかな

あと言い忘れたけどCountDownLatchは一回集合したら常に通れるようになるから
もう一回待ち合わせるのに使うことはできない

 

10: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 08:06:54.319 ID:6WaFToqQ0.net
時間のかかる処理をするときに使うんだよ

 

11: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 08:12:06.385 ID:jG/qelcu0.net

具体的なケースで頼む

複数の配列のそれぞれを合計するようなときに使うのかと思ったけど
それならスレッドの終了を待つ(join())でできるからバリアーの意味が分からない

待ち合わせの後に後続の処理を実行するってことなんだろうが
それってどんなケースなんだ?

 

12: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 08:13:11.573 ID:vLNEF6nV0.net
妄想だけど、例えばゲーム開発とかで
プレステ版でもWiiU版でも開発するときに
本体(CPU)が違うけど同じソースコードを使いたいとき
CPUの挙動に依存させないためにバリアしとく
とか

 

14: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 08:20:36.268 ID:jG/qelcu0.net
>>12
その処理って何だろう?

 

13: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 08:14:50.386 ID:6WaFToqQ0.net
そんな小難しい事考えずに、例えばウェブ巡回とか考えてみなよ
1スレッドで1件1件回るより、複数スレッドで手分けした方が速いじゃん
それに巡回終わったあとに何か処理動かしたいなら、待ち合わせしないとダメだろ?

 

15: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 08:22:17.019 ID:jG/qelcu0.net

>>13
巡回終わったあとの処理って?

処理が完了するのを待つのはjoin()でできる
待ち合わせ後も各スレッドで処理をしたいケースが思いつかん

 

16: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 08:25:04.851 ID:dJVGTdR40.net
100のホームページの巡回をしなければいけない
5つのスレッドしか作れない
時々サーバーが死んでいるためかレスポンスが返ってこないホームページがある
なんて場合とか

 

17: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 08:27:41.167 ID:jG/qelcu0.net
>>16
それはエラーハンドリングのやり方じゃないかなあ

 

19: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 08:55:12.412 ID:/DeFP3oea.net
画像処理の分割とか

 

20: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 08:59:50.611 ID:jG/qelcu0.net
分割して並行して実行するのはいくらでも想像できる
でも、分割→処理→待ち合わせ→後続処理ってケースがどういうケースか分からん
分割→処理→完了待ち→後処理は分かるんだが

 

22: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:03:28.048 ID:mmK4c7Kup.net
>>20
統計出したりとかいるだろ
複数スレッドで各板回って、合計未読レス数出すとか

 

24: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:06:21.381 ID:jG/qelcu0.net

>>22
複数スレッドで各板回って情報収集する
処理完了
集計する

で十分

スレッドの待ち合わせ+分割したスレッドを残す、の両方が必要だからこそバリアーを使うなはず

 

29: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:16:22.884 ID:+w8Dn9Ajp.net
>>24
Joinだとスレッド死なないとダメじゃん
スレッドプールで処理するなら使えない

 

31: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:20:26.603 ID:jG/qelcu0.net
>>29
スレッドプールで繰り返し処理するならそのたびに待ち合わせができる必要がある
CountDownLatchは一回しか待ち合わせに使えない
繰り返し待ち合わせることができるCyclicBarrierは別にある

 

21: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:00:58.313 ID:euK2dD/X0.net
他のやり方でもできるけどバリアでもできるってだけの話だろ

 

27: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:12:46.545 ID:jG/qelcu0.net
>>21
そうかもしれないけど正確な回答ではない
もともと何かの目的があって作られた機能のはず
スレッドの終了を待つ機能は最初からあったみたいだから
それでは対応できないケースがあったと思われる

 

23: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:05:56.553 ID:/DeFP3oea.net
スレッド生成のコストがなくなるとかじゃね

 

25: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:07:24.283 ID:jG/qelcu0.net
>>23
それはバリアーのメリットなんだが
後続の処理があるからこそスレッドが残ってる意味がある
それってどんなケースか思いつかない

 

26: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:12:08.960 ID:/DeFP3oea.net
>>25
段階別のエラーチェックとかは?

 

28: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:13:16.120 ID:jG/qelcu0.net
>>26
どういうこと?

 

30: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:17:12.959 ID:CMboZjJtE.net
頭悪いなぁ
社畜が5人居て1人だけ働いて残りの4人が煙草吸ってたら非効率的だろ氏ね

 

32: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:21:12.516 ID:WSuRkjJqp.net
バリア 「みんな席について」
スレッドたち 「ガヤガヤ」
バリア 「はい、みんなが静かになるまで今までかかりました。起立、気おつけ、礼。気をつけて帰ってね」
スレッドたち 「ザワザワ」
こういう事だ

スポンサーリンク

34: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:23:06.930 ID:jG/qelcu0.net
>>32
なるほど分からん

 

35: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:23:11.769 ID:7U21HuaSp.net
>>32
なにいってんだこいつ

 

33: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:22:28.852 ID:/DeFP3oea.net
共通の認証チェックが必要な時とか?
認証は別スレッドでやってその結果を使って他のスレッド各処理を続行するとか

 

37: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:27:47.716 ID:jG/qelcu0.net
>>33
そうだなあ
メインスレッドが作業用スレッドを生成
作業用スレッドは準備作業の完了を待つ
メインスレッドは準備作業を実行
作業用スレッド処理開始
ってのはあるだろうな

 

36: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:24:04.817 ID:GzqtGwZn0.net
スッドレスッドレ

 

38: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:30:05.260 ID:jG/qelcu0.net

https://docs.oracle.com/javase/jp/8/api/java/util/concurrent/CountDownLatch.html
の最初のDriverのコードの実際の例が思いつかないのよねー

メインスレッドが作業用スレッドを生成
作業用スレッドは準備作業の完了を待つ
メインスレッドは準備作業を実行
作業用スレッド処理開始
作業用スレッドの処理がある箇所に到達するのを待ち合わせる
すべての作業用スレッドが待ち合わせ地点に到着する
後続の○○の処理を実行する

ってことなんだけどそれってどんな処理なんだか思い付かない

 

39: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:31:02.517 ID:dCWZqjBep.net
思い付かないならいいんじゃない
まだ勉強する時期じゃなかったということだ

 

40: 以下、\(^o^)/でVIPがお送りします 2015/08/15(土) 09:32:43.723 ID:jG/qelcu0.net
>>39
勉強の仕方を議論するつもりはない

引用元: http://viper.2ch.sc/test/read.cgi/news4vip/1439591982/

関連記事

javascript-2

javascriptで途中で関数止めたいんだけど、どうしたらいいの

1: 風吹けば名無し@\(^o^)/ 2015/09/17(木) 12:01:29.71 ID:W

記事を読む

top-baner04

Webプログラミングやりたいんだけど、何から始めたら良いの?

1: 以下、\(^o^)/でVIPがお送りします 2015/10/15(木) 17:39:34.9

記事を読む

7f933f8837671ddb04b082c1aedabc05

Googleトレンドで「ゲーム製作」をググった結果wwwwwwwwwwww

1: 以下、\(^o^)/でVIPがお送りします 2015/11/08(日) 22:52:20.3

記事を読む

c561d52a81b982d24f5890bd0205d95f_s

PCのブラウザ開くと変な広告が表示されるんだがこれって何?

1: 以下、\(^o^)/でVIPがお送りします 2015/04/23(木) 15:11:18.7

記事を読む

https---www.pakutaso.com-assets_c-2014-09-PAK89_koukotunomanbou20140719500-thumb-autox1000-5332

プログラムってすげえ if使わなくても連想配列で解決出来るなんて目から鱗

1: 以下、\(^o^)/でVIPがお送りします 2015/06/05(金) 07:46:57.6

記事を読む

bsLISA78_MBAsawaru20141018102912

こういうWEBサイト作り始めたいんだけど、色々教えろカス

1: 以下、\(^o^)/でVIPがお送りします 2015/10/08(木) 20:42:03.8

記事を読む

スクリーンショット 2014-04-15 0.11.54

プログラマですが質問とかありますでしょうか?

1: 名無しさん 2014/03/11(火)02:30:23 ID:rD99MZNu6 底辺です

記事を読む

https---www.pakutaso.com-assets_c-2015-06-GREEN_O20140125-thumb-1000xauto-16629

お世辞抜きでRuby・Python・PHPのなかではRubyが一番よく出来てね?

1: zaq771925b4.zaq.ne.jp@\(^o^)/ 2015/03/15(日) 22

記事を読む

bsAL202syazai220140830165542

JavascriptもPHPも挫折したんだけど、もっと簡単なプログラミング言語は無いの?

1: 番組の途中ですがアフィサイトへの\(^o^)/です (ワッチョイ c576-2/7G) 20

記事を読む

https---www.pakutaso.com-assets_c-2013-07-PAK88_RMryujin500-thumb-1000xauto-3260

リアルタイム駆動型のTRPG作りたいんだけど

1: 以下、\(^o^)/でVIPがお送りします 2015/02/16(月) 21:06:12.9

記事を読む

Huawei-Mate-8-benchmark-post-launch_1
Androidのベンチマーク、10万点を突破 インフレが止まらない

1: 番組の途中ですがアフィサイトへの\(^o^)/です (ニククエ

hGJvbfh
せっかくの休みだ。原付で>>5に行く。

1: 名無しさん@おーぷん 2015/11/29(日)06:13:2

9xHNnte
XperiaZ5からdocomoのロゴだけ消せるシートが発売開始

1: 番組の途中ですがアフィサイトへの\(^o^)/です (アウアウ

bsLISA78_MBAsawaru20141018102912
子供にプログラミング教えることになりそうなんだが、どうやって教えたら良いんだ?

1: 以下、\(^o^)/でVIPがお送りします 2015/11/2

top
国内で最大容量の8THDDが2万円台に値下がり

1: 海江田三郎 ★ 2015/11/29(日) 14:43:35.

→もっと見る

PAGE TOP ↑