whi*_*ler 1 java concurrency multithreading
我有多个线程(现在让我们说两个),每个线程检索一个HTML页面并将其内容写入文件.需要注意的是,每个线程都想写入相同的输出文件.具有run()方法的类是静态内部类.我想采取的方法是让每个线程将要写入的内容放入队列中.然后,在线程完成(或所有线程完成)之后,迭代队列并将内容打印到文件.我不确定如何实现这一点.同样,实现可运行接口的类是静态的.我并不精通并发性,也不一定想做任何花哨的事情.有关简单实施的任何建议吗?
您可以使用BlockingQueue从java.util.concurrent包.每个线程都会将其输出放入队列,第三个线程会将这些元素从队列中取出并将它们写入文件.在Blocking Queue的API页面上,您应该可以使用它来实现.您只需要提供实施produce,consume并且您已完成.