大致流程
先将要写入文件的数据写入到一个队列中,然后单开一个线程专门读取队列数据写入文件,可以保证写入到文件的数据的顺序,
生产者类即多线程写入文件模拟
package com.ldl.test.domain;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.ConcurrentLinkedQueue;
/**
* 将数据保存到队列中(生产者)
* @author liam
*
*/
public class SaveDataToQueue implements Runnable{
private ConcurrentLinkedQueue<String> queue;
private String data;
public SaveDataToQueue(ConcurrentLinkedQueue<String> queue, String data) {
this.queue = queue;
this.data = data;
}
@Override
public void run() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:hh:ss sss");
data = sdf.format(new Date())+":"+data;
System.out.println(data);
queue.add(data);
}
}
消费者类(将队列数据写入文件)
package com.ldl.test.domain;
im