0

私の質問は、同じ OutputStream に一意の要求を送信するために複数のスレッドを作成しているため、どの変数の参照を 1 つ作成する (または同期する) だけでよいかということです。私の教授は URLConnections について説明していませんでした。

1 つのスレッドのみを実行すると正常に動作しますが、複数のスレッドでは最初のスレッドのみが出力されます。

助けていただければ幸いです。

================================================== =======================

URLTest のコンストラクター内:

/*URL*/ link = new URL("url removed");
/*URLConnection*/ connect = link.openConnection();
connect.setDoOutput(true);

URLTest 内で次のコードを実行しています。

for (int i = 0; i < 2; i++) {
    Thread t = new Thread(new ThreadTest());
    /*ArrayList<Thread>*/ a.add(t);
    t.start();
}

Runnable を実装する ThreadTest 内の run():

PrintWriter osw = new PrintWriter(connect.getOutputStream());
osw.write("query removed");
osw.close();
BufferedReader in = new BufferedReader(new InputStreamReader(
        connect.getInputStream()));

String s;
while ((s = in.readLine()) != null)
    System.out.println(s);
4

1 に答える 1

0

問題は、新しいスレッドが作成されるたびに URLConnection をインスタンス化する必要があることでした。

于 2012-12-09T18:31:37.283 に答える