
[ホーム]
[最新エントリー]
[あすなろBLOG]
[あすなろNEXTBLOG]
[あすなろカウンセラーBLOG]
[インタビュー]
[スペシャルコンテンツ]
[テックスペース]
|
|
次へ |
大谷 弘喜
2007年07月10日
会社のN君は,マルチスレッドで動くとき,メソッドのローカル変数がスレッド間で共有されると思っていたりしたこともありますが,それはさておき,時々,Javaはフレームワークやデザインパターンがちゃんとしているので,マルチスレッドプログラミングは簡単だと聞いたりする事もあります。正確にはマルチスレッドでの排他制御や同期の取り方です。確かにvolatileやsynchronizedなどがあるので,Cに比べて助長な書き方をしなくてもすみます。若干,構文が簡単になるだけで,本質的な難しさは何も変わっていません。
まあ,と言ってもCよりは書きやすくなっているのは事実なので,巨大なロックで効率を無視して安全に書く事は出来ます。ロックの中で排他制御をしなくてもよいようなデータベースのアクセス(例えば数秒かかる処理)を沢山行なっていてもちゃんと動きます。つまり、効率さえ無視すれば,割と気軽に手を出す事が出来ます。素晴らしいですね。他のスレッドは数秒待って,さらに別のスレッドは数十秒待って・・・。でも効率は悪いですが,ちゃんと動きます。でも、教科書的な書き方で素晴らしいです。でも、効率は悪いです。
さて,その効率を改善しようとすると,体に悪い事が置きます。デバッグは難しいし,どこからどこまでが本当に守らないといけない領域か判断しないといけないし,シングルスレッドが恋しいし,それがダメならスレッド間の強調がない世界に戻りたいし,そして夜は更けていく。えーと、どんなにプログラミング言語が進歩しても難しいものは難しいままのこっていくと言う話です。プログラミング言語がどんなに進歩しても難しいものが簡単になる事はあまりなくって、難しさの質が変わっていくだけだったり,より本質的なものが難しいまま残っていくのかな?
|
|
次へ |
|
|
[ホーム]
[ブログコンセプト]
[個人情報]
[著作権]
