记得收藏【国际动画教程网】,赶快注册吧!
注册

合作站点账号登陆

QQ登录

只需一步,快速开始

扫一扫,访问微社区

快捷导航

Java开源:traffic-shm-Java 版异步无锁共享内存实现[含2P]

[复制链接]
发表于 2017-5-25 07:26:51 | 显示全部楼层 |阅读模式

Java开源:traffic-shm-Java 版异步无锁共享内存实现 Windows,应用程序,Memory,服务器,消费者 【Java】 072728v73hcupsfkw54d3m 1

介绍

traffic-shm(Shared Memory)是一个基于Java的无锁消息库,专为在同一台服务器上的进程间通信(IPC)而设计。

特征

1. Pure Java

共享内存是进程间通信的有效机制。 内存映射文件提供动态内存管理功能,允许应用程序以与将虚拟地址空间的物理内存共享段相同的方式访问磁盘上的文件。

traffic-shm使用sun.misc.Unsafe和FileChannel提供纯Java实现,需要JDK 1.6+。

2. Lock-Free

使用非阻塞算法,实现多生产者/单消费者并发队列,traffic-shm可用于构建具有高吞吐量和低延迟的实时系统。

3. Cross-Platform

对齐:4字节对齐

byteorder:big-endian

支持大多数主要操作系统,如Linux,macOS,Windows,AIX和HP-UX。

注意:在HP-UX上设置-Xmpas:

4. Message Ordering

traffic-shm提供一个一键保证的FIFO队列。

光标只能向前传送,一旦消息成功传递,消息就是AUTOMATIC ACKNOWLEDGMENT,这意味着一旦接收者接收到消息,就会确认消息。

设计

Java开源:traffic-shm-Java 版异步无锁共享内存实现 Windows,应用程序,Memory,服务器,消费者 【Java】 072728u1ktt8c1kke8ce5c 2

入门

读:

Queue queue = Queue.map("/Users/peptos/shm", 2000L, 1, 0);
queue.init();

while (true) {
	Block block = queue.poll();
	if (block != null) {
		System.out.println(new String(block.getPayload(), "UTF-8"));
	} else {
		Util.pause(10);
	}
}

写:

Queue queue = Queue.map("/Users/peptos/shm", 2000L, 1, 0);

String string = "hello, world";
byte[] bytes = string.getBytes("UTF-8");
System.out.println(queue.put(new Block(bytes)));

queue.close();

TODO

  • extend mode

reference: Mycat-IPC

项目主页:http://www.open-open.com/lib/view/home/1494897978750

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
一起共享资源,共建精品资源平台。记得一定要收藏我们网站。www.gjdhjc.com ||||| 还有我们的网址导航:www.58q8.com【链接失效可以留言看到第一时间补帖,如果懒的回复我也是没办法了】
微信扫一扫,每天教程更新!
想学习最新知识关注“今日教程”微信公众号!站长每天更新教程,每天八条,欢迎关注支持!!!
快速回复 返回顶部 返回列表