-1

マルチスレッドのJavaプロジェクトに取り組んでおり、スレッドの1つがWebページに接続しています。現在、私はそれを次のように行っています:

URLConnection urlConn = webPageToContact.openConnection();
InputStreamReader inStream = new InputStreamReader(urlConn.getInputStream());
BufferedReader buff  = new BufferedReader(inStream);

私の質問は、このスレッドがサーバーの応答を待っている間、私のプロジェクトの他のスレッドが何かを実行できるように、スレッド化された方法でこれを行う方法はありますか?ある種の「待機」方法を考えています。ありがとう!

4

2 に答える 2

3

Single Thread Pool Executor を使用することもできます。

ExecutorService service = Executors.newSingleThreadExecutor();
   service.submit(new Runnable() {
   @Override public void run() {
      URLConnection urlConn = webPageToContact.openConnection();
      InputStreamReader inStream = new InputStreamReader(urlConn.getInputStream());
      BufferedReader buff  = new BufferedReader(inStream);
      // put data in queue or some other data structure
   }    
});

service.shutdown();
于 2012-12-02T09:46:05.990 に答える
1

これを試して:

Thread webReader = new Thread(){
    public void run(){
        URLConnection urlConn = webPageToContact.openConnection();
        InputStreamReader inStream = new InputStreamReader(urlConn.getInputStream());
        BufferedReader buff  = new BufferedReader(inStream);
    }
});
webReader.setDaemon(true);
webReader.start();
于 2012-12-02T09:34:28.593 に答える