乐享资讯 - 快乐阅读,分享人生!

乐享资讯 - 快乐阅读,分享人生!

当前位置: 首页 > 程序人生 > Java >

简单实现Java队列写入和读取数据操作模拟

时间:2017-01-19 11:59来源:乐享资讯 作者:陈老OK 点击:
周末闲来无事,之前一直没有机会用java队列,自己写个小例子玩玩,以作记录,全局代码中声明dataQueue作为队列对象,采用ProductionThread和ConsumptionThread线程分别模拟资源生产者和资源消费者,不多说了,先上个妹子美照为大家愉快的阅读拉开帷幕。


主要代码如下:

package com.queue;

import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.TimeUnit;

public class QueueTest {
	private static int count = 0;
	/**
	 * 数据队列
	 */
	private static ConcurrentLinkedQueue<Integer> dataQueue 
		= new ConcurrentLinkedQueue<Integer>();
	
	public static void main(String[] args) {
		new ProductionThread().start();
		new ConsumptionThread().start();
	}
	
	/**
	 * 生产者
	 */
	public static class ProductionThread extends Thread{
		public void run() {
			while (true) {
				count +=2 ;
				dataQueue.add(count);
				System.out.println("放入资源:"
						+ count 
						+ " 对队列池当前总数量:"
						+ dataQueue.size());
				try {
					TimeUnit.SECONDS.sleep(2);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	/**
	 * 消费者
	 */
	public static class ConsumptionThread extends Thread{
		public void run() {
			while (true) {
				Object readCount = dataQueue.poll();
				if(readCount==null){
					System.out.println("获取队列资源为null");
				}else{
					System.out.println("释放资源:"+ 
							readCount.toString()
							+ " 对队列池当前总数量:"
							+ dataQueue.size());
				}
				try {
					TimeUnit.SECONDS.sleep(3);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
	}
}

 
(责任编辑:小乐)
------分隔线----------------------------
栏目列表
乐享资讯
推荐内容
乐享资讯