Java实现多线程写数据到文件【队列-文件】

本文介绍了一种使用Java实现多线程通过队列同步写数据到文件的方法,确保数据写入顺序。内容包括生产者类的多线程模拟、消费者类将队列数据写入文件的实现,以及测试过程和结果。
摘要由CSDN通过智能技术生成

大致流程

先将要写入文件的数据写入到一个队列中,然后单开一个线程专门读取队列数据写入文件,可以保证写入到文件的数据的顺序,

生产者类即多线程写入文件模拟
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
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值