package arrayblockingqunce;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.concurrent.BlockingQueue;
public class TestThread extends Thread {
BlockingQueue<File> queue;
File ff = new File("c:/usr/zxs_test.txt");
public TestThread(BlockingQueue<File> queue) {
this.queue = queue;
}
public void run(){
File f = queue.poll();
if(null!=f) {
System.out.println("取出"+f.getName());
try {
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String line =null;
FileWriter fw = new FileWriter(ff,true);
BufferedWriter bw = new BufferedWriter(fw);
while((line = br.readLine())!=null) {
bw.write(line+"\r\n");
}
System.out.println();
br.close();
bw.flush();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
package arrayblockingqunce;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
public class TestBlockingQuence {
public static void main(String[] args) throws IOException {
BlockingQueue<File> queue = new ArrayBlockingQueue<File>(32);
for(int i =0;i<128;i++) {
File f = new File("c:/usr/zxs_test"+i+".txt");
f.createNewFile();
FileWriter fw = new FileWriter(f);
BufferedWriter bw = new BufferedWriter(fw);
for(int j =0;j<30;j++) {
bw.write("hello world,hello world,hello world\r\n");
}
bw.flush();
bw.close();
queue.add(f);
TestThread tt = new TestThread(queue);
tt.start();
System.out.println("加入"+f.getName());
}
}
}