使用zmq,probuf,缓冲池实现序列化和反序列化框架(一)-使用ConcurrentLinkedQueue实现缓冲池
来源:互联网 发布:nginx rtmp下载 编辑:程序博客网 时间:2024/06/13 19:00
ConcurrentLinkedQueue是并发包中可以保证一些情况下线程安全的队列。使用队列来实现缓冲池考虑到了缓冲池经常分配回收的特性,就像一个队列一样。
关于ConcurrentLinkedQueue并发包的分析
简单的代码实现:
package com.zjq.stream;import java.util.concurrent.ConcurrentLinkedQueue;public class BufferPoolTest {//定义缓冲池private static final ConcurrentLinkedQueue<byte[]> bufferPool = new ConcurrentLinkedQueue<byte[]>();private static final int bufferSize = 2 * 1024 * 1024;// 2MB/** * 申请分配缓冲 * @return */public static byte[] allocateBuffer() {byte[] result = bufferPool.poll();System.out.println("使用:池中的缓存现在有" + bufferPool.size() + "个"+" HashCode:"+bufferPool.hashCode());if (result == null) {result = new byte[bufferSize];System.out.println("申请了一个新的缓冲");} else {System.out.println("使用池中的缓存");}return result;}/* * 回收缓冲 */public static void recycleBuffer(byte[] b) {bufferPool.add(b);System.out.println("回收:池中的缓存现在有" + bufferPool.size() + "个"+" HashCode:"+bufferPool.hashCode());}}
阅读全文
1 0
- 使用zmq,probuf,缓冲池实现序列化和反序列化框架(一)-使用ConcurrentLinkedQueue实现缓冲池
- 使用zmq,probuf,缓冲池实现序列化和反序列化框架(二)-ZMQ介绍
- 使用序列化和反序列化实现深拷贝
- 在java中使用kryo框架来实现高效序列化与反序列化
- 对象的序列化和反序列化及其实现和使用
- Java对象的序列化和反序列化及其实现和使用
- .NET中使用Protobuffer 实现序列化和反序列化
- .NET中使用Protobuffer实现序列化和反序列化
- GOF之原型使用序列化和反序列化实现深复制
- Json工具类--使用json-lib实现json的序列化和反序列化
- Json工具类--使用Gson实现了Json的序列化和反序列化
- 设计模式之使用序列化和反序列化实现单例模式
- 缓冲输入流、缓冲输出流、对象序列化转为byte[]、byte[]转化反序列化为对象
- 使用反序列化实现深克隆
- 使用信号量实现的有界缓冲池BoundedBuffer
- 使用Golang下chan实现一个缓冲池(Pool)
- java 常用序列化和反序列化框架使用demo
- java 常用序列化和反序列化框架使用-json,kyro,jdk
- ffmpeg 中print_report中相关日志说明
- FSN (dp)
- 小结
- Android双击屏幕动态实现全屏(隐藏标题栏状态栏)
- 242. Valid Anagram
- 使用zmq,probuf,缓冲池实现序列化和反序列化框架(一)-使用ConcurrentLinkedQueue实现缓冲池
- 如何正确管理DCS备件
- Rotation representation
- 大数据技术的应用现状与展望
- Linux执行可执行文件提示No such file or directory的解决方法
- 关于codeblocks出现can't find compiler的解决方法
- 斐波那契数列-java编程:三种方法实现斐波那契数列
- 微信小程序实例源码大全
- Excel 表格导出方法