-4

これの解決策を説明/教えてもらえますか....コードサンプルは次のとおりです。

public static void main(String[] args) throws InterruptedException, ExecutionException {
      queue = new Queue<String>();
      set = new SET<String>();
      ExecutorService executor = Executors.newFixedThreadPool(NO_OF_THREADS);                       
      List<Future<List<String>>> list = new ArrayList<Future<List<String>>>();  
      System.out.println("enter the url");
      Scanner sc=new Scanner(System.in);
      String input=sc.next();
      l.add(input);
      queue.enqueue(input);
      Callable<List<String>> worker = new SimpleCrawler(input);       
      Future<List<String>> submit = executor.submit(worker);        
      list.add(submit);
      ArrayList<?> l1=(ArrayList<?>) submit.get();
      Iterator<?> itr=l1.iterator();

      while(itr.hasNext())
         {
             System.out.println(itr.next());        
         }

繰り返し文字列を関数 submit(...) に再度渡すにはどうすればよいですか。最初の繰り返し文字列を関数に渡し、次の繰り返し値をその関数に渡したいなど....これについて説明してもらえますか..ありがとう

4

1 に答える 1

0

あなたの質問から何を達成したいのかははっきりしていませんがSimpleCrawler、反復された文字列で新しいものを作成して、同じエグゼキューターに渡してはどうでしょうか。

while(itr.hasNext()) {
  Callable<List<String>> nextWorker = new SimpleCrawler(itr.next().toString())
  Future<List<String>> nextSubmit = executor.submit(nextWorker)
  ...
}
于 2012-11-08T07:45:13.837 に答える