题目一:
将t1,t2,t3,t4这四个线程分别向4个文件中写入数据,t1写入1,t2写入2,t3写入3,t4写入4,分别在A,B,C,D这4个文件中写入如下内容:
- A:123412341234
- B:234123412341
- C:341234123412
- D:412341234123
-
用JAVA语言实现以上功能同步并且实现让线程并行工作。以下实现代码转自网络,有bug
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.ReentrantLock; public class Main { static ExecutorService ex=Executors.newFixedThreadPool(4); static class MyFile{ private File file; //用来表示当前文件的索引 public AtomicInteger index; private ReentrantLock lock=new ReentrantLock(); public MyFile(String filePath,int index){ file=new File(filePath); this.index=new AtomicInteger(index); } //写入文件 public void writeStr(String s) throws FileNotFoundException{ FileOutputStream out=null; OutputStreamWriter</