K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]


新規投稿 | 開設者ホームページへ戻る | ヘルプ


[2063] Re:info.servlet.serviceについて
返信


投稿者:くまきち
2017/12/19 21:37:28

Link:
なるほど、了解です!ありがとうございます。
ですが、もう少し分からないことがあります。

マルチスレッドで動くとなると、クラスがRunnableをimplementsして...のような
ルールが必要なのかと思っていたのですが、HttpServletは、そのようになっていません。

HenacatでRunnableをimplementsしているのはServerThreadだけだと思いますが、
もしかしてマルチスレッドの各スレッドから呼び出されるクラスは、ルールの適用無しでも
(結果として)マルチスレッドで動くという事なのでしょうか?

入門書を読め!という話なのかも知れませんが、どうぞ宜しくお願いします。



>>分からないのは「info.servlet」がnullでなければ、同じインスタンスが
>>使いまわされるのに、並行して複数個所から使いまわされていいんだっけ?
>>ということです。
>
>p.92の補足にも書きましたが、サーブレットのインスタンスはひとつだけ生成され、
>すべてのリクエストで共有されます。
>よって、インスタンスフィールドを使えば、複数のスレッド間で競合が起きる
>可能性がありますし、(補足にも書いたように)リクエスト単位やユーザ単位で
>持つべき情報をサーブレットのインスタンスフィールドで保持してはいけません。
>
>ただし、ローカル変数はスレッドごとに存在するので、ローカル変数(メソッドの
>引数含む)だけを使っている限り、同じインスタンスのメソッドを複数のスレッドで
>呼び出すことは問題ありません。
>
[ この投稿を含むスレッドを表示] [ この投稿を削除]



[ より新しい投稿] [ より古い投稿]