私は一連のキーを持っています。複数のスレッド間でストリームインスタンスを共有することは安全ですか?
class X {
private static String[] keys = {"k1", "k2", ... };
リクエストからキーの値を抽出する必要があります。私はこのようないくつかの要求の処理方法でリスト必要なオブジェクトを値を抽出して作成するためにmap
を使用することができると思う:
public void processReq(Request req) {
...
Stream.of(keys).map(k-> new Pack(k, req.getHeader(k)));
しかし、すべての要求ごとStream
を作成するには、不要なタスクを探します。複数のスレッド間でStream
インスタンスを共有することが安全であるならば、私はこのようなコードを変更することができると思います。だから、
class X {
private static Stream<String> keys = Stream.of("k1", "k2", ...);
...
public void processReq(Request req) {
...
keys..map(k-> new Pack(k, req.getHeader(k)));
は、この安全なように複数のスレッド間でStream
インスタンスを共有していますか?
これは機能しません。ストリームは一度しかトラバースできません。 – Tunaki
配列にストリームを作成するのに時間がかかりません。それには時間がかかります。 –