最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java多線程讀寫文件示例

 更新時(shí)間:2014年04月11日 09:56:48   作者:  
這篇文章主要介紹了java多線程讀寫文件示例,需要的朋友可以參考下

復(fù)制代碼 代碼如下:

package com.ysh.file;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

import com.google.common.collect.Lists;

public class WriteQueue {
 private static final int MAX_QUEUE_SIZE = 10000;
 private LinkedList<String> queueCache = Lists.newLinkedList();
 private Lock lock = new ReentrantLock();
 private Condition full = lock.newCondition();
 private Condition empty = lock.newCondition();

 private WriteQueue() {
 }

 private static class WriteQueueHolder {
  private final static WriteQueue INSTANCE = new WriteQueue();
 }

 public static WriteQueue getInstance() {
  return WriteQueueHolder.INSTANCE;
 }

 public void add(String line) {
  lock.lock();
  try {
   while (queueCache.size() >= MAX_QUEUE_SIZE) {
    full.await();
   }
   queueCache.addFirst(line);
   empty.signal();
  } catch (InterruptedException e) {
   e.printStackTrace();
  } finally {
   lock.unlock();
  }
 }

 public void add(List<String> lineList) {
  lock.lock();
  try {
   while (queueCache.size() >= MAX_QUEUE_SIZE) {
    full.await();
   }
   queueCache.addAll(lineList);
   empty.signal();
  } catch (InterruptedException e) {
   e.printStackTrace();
  } finally {
   lock.unlock();
  }
 }

 public ArrayList<String> flush() {
  ArrayList<String> temp = null;
  lock.lock();
  try {
   while (queueCache.size() == 0) {
    empty.await();
   }
   temp = Lists.newArrayList();
   temp.addAll(queueCache);
   queueCache.clear();
   full.signal();
  } catch (InterruptedException e) {
   e.printStackTrace();
  } finally {
   lock.unlock();
  }
  return temp;
 }

}

相關(guān)文章

最新評(píng)論

江达县| 平泉县| 襄樊市| 徐水县| 炉霍县| 乐清市| 故城县| 永定县| 贺州市| 明星| 长治县| 湘阴县| 织金县| 博湖县| 宁河县| 和顺县| 三台县| 东兰县| 庆安县| 马尔康县| 策勒县| 贵德县| 绥阳县| 都匀市| 赤水市| 逊克县| 澜沧| 大埔区| 延川县| 会泽县| 冀州市| 东乡族自治县| 鹤壁市| 兴化市| 开阳县| 宁晋县| 江川县| 共和县| 林甸县| 峨眉山市| 吉木乃县|