public class FileWriteThread implements Runnable { /** */ private static final String SPLIT = "|"; private String name; private OrderManager orderManager; private long startItem; public FileWriteThread(String name, OrderManager orderManager, long startItem){ this.name = name; this.orderManager = orderManager; this.startItem = startItem; } /** * @see java.lang.Runnable#run() */ @Override public void run() { OrderQuery query = new OrderQuery(); long firstItem = startItem*100000 + 1; long lastItem = (startItem+1)*100000; query.setFirstItem(firstItem); query.setLastItem(lastItem); List<Order> orders = orderManager.selectWithPage(query); File file = new File("D://1.txt"); if(!file.exists()){ try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } BufferedWriter bufferwriter = null; FileWriter filewriter = null; StringBuilder sb = new StringBuilder(); try { filewriter = new FileWriter(file, true);//Append bufferwriter = new BufferedWriter(filewriter); for(Order order: orders){ sb.append(name).append(SPLIT).append(order.getCardNo()).append(SPLIT) .append(order.getFundAccount()).append(SPLIT).append(order.getMisId()) .append(SPLIT).append(order.getName()).append(SPLIT).append(order.getOrderAmount()) .append(SPLIT).append(order.getStatus()); bufferwriter.write(sb.toString()); bufferwriter.newLine(); sb.delete(0, sb.length()); } bufferwriter.flush();//刷新流 } catch (IOException e) { e.printStackTrace(); }finally{ try { bufferwriter.close(); filewriter.close(); } catch (IOException e) { e.printStackTrace(); } } } public void setOrderManager(OrderManager orderManager) { this.orderManager = orderManager; } public void setStartItem(long startItem) { this.startItem = startItem; } }
调用端:
@Controller @RequestMapping("/thread") public class ThreadPool { @Autowired private OrderManager orderManager; @RequestMapping("/pool") public void pool(ModelMap model) { ExecutorService pool = Executors.newSingleThreadExecutor(); long start = System.currentTimeMillis(); for(int i=0; i<20; i++) pool.execute(new FileWriteThread("线程"+(i+1), orderManager, i)); System.out.println(System.currentTimeMillis()-start); } }
相关推荐
VC++环境下编写的一个多线程文件读写操作的实例。简单的利用互斥变量、原子操作等技术实现多线程读写文件时的互斥,从而确保文件在操作过程中不会被破坏。例子并没有使用很多复杂的逻辑。适合刚接触多线程编程的新手...
代码目的是比较write和printf多路写性能。首先fork生成子进程,并且在子进程中重定向标准输出;然后在父子进程中各创建10个线程分别利用printf和write进行写操作;最后通过返回值比较两者性能。
Java多线程读大文件 java多线程写文件:多线程往队列中写入数据
NULL 博文链接:https://kaobian.iteye.com/blog/1126621
多线程通信读写文件代码,根据其他的代码文档修改,用于学习多线程通信。
主要介绍了java多线程读写文件示例,需要的朋友可以参考下
多线程对文件读写操作(java),提高对文件读写效率。
Qt Creator 多线程读取文件到程序显示 利用QT Creator多任务读取一个文档到程序里 为了防止直接读取文件里的内容太大而发生卡顿,于是多线程读取将更高效的解决这个问题。 效果图如下: 其中pro文件无需改动,...
Python的多线程在io方面比单线程还是有优势,但是在多线程开发时,少不了对文件的读写操作。在管理多个线程对同一文件的读写操作时,就少不了文件锁了。 使用fcntl 在linux下,python的标准库有现成的文件锁,来自于...
使用办法 java -jar ThreadIOReadWriteTest.jar iowrite 4096 D:/1.txt C:/2.txt Usage: ThreadIOReadWriteTest ioread/iowrite 4096 dest1/source1 dest2/source2 ... java -jar ThreadIOReadWriteTest.jar io...
vc++读取写入文件 读取写入文件 带进度条的文件读写 多线程读写文件 带进度条可停止的多线程读写文件
java多线程文件传输 java多线程文件传输
Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式上传文件Java多线程设计模式...
使用多线程实现同步读写的一个小程序,同时开启读线程和写线程。当写线程写入一个数字时,读线程读取该数字。
用独立的 TThread 单元 在同一个进程中 将 一份数据很多的文件 分成 两块 同事来读取。 提快速度。
WINSOCK多线程传输文件,效率高,速度快,
如果您想从服务器端下载多个文件,若按照传统的下载方式,这下载速度是非常慢的,我这里提供一个把所有需要下载的文件先压缩,后下载的完全解决方案。在此秀一下,工大家参考之用。
qt多线程下载文件的Demo,支持http协议,支持多任务下载
三,写文件(文件名为序号,如0.txt),文件夹File。 四,Sleep(600)。 五,记录日志:本函数开始执行 时间,结束时间,序号。 六,复制List到参数。 模拟图像处理函数: 一,复制参数 二,参数保存到文件,文件名...