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());
}
}
}