使用Redis单实例实现分布式锁
一、前言
在同一个jvm进程中时,可以使用JUC提供的一些锁来解决多个线程竞争同一个共享资源时候的线程安全问题,但是当多个不同机器上的不同jvm进程共同竞争同一个共享资源时候,juc包的锁就无能无力了,这时候就需要分布式锁了。常见的有使用zk的最小版本,redis的set函数,数据库锁来实现,本节我们谈谈Redis单实例情况下使用set函数来实现分布式锁。 阅读全文
在同一个jvm进程中时,可以使用JUC提供的一些锁来解决多个线程竞争同一个共享资源时候的线程安全问题,但是当多个不同机器上的不同jvm进程共同竞争同一个共享资源时候,juc包的锁就无能无力了,这时候就需要分布式锁了。常见的有使用zk的最小版本,redis的set函数,数据库锁来实现,本节我们谈谈Redis单实例情况下使用set函数来实现分布式锁。 阅读全文
作者:刘文敏
本文所说的包不是LV,也不是Chanel,而是Java语言中的包package,是Java程序员从写“Hello World”开始就接触的概念,Java引入包机制是为了更好的组织类,防止命名冲突,进行访问控制,提供搜索和定位类。
程序员对包的使用可以说是烂熟于心,但是笔者近日在自动构建后代码合规检查过程中发现了一个有趣的现象,某个Ant项目在自动构建时顺利通过,而代码合规检查的报告中则有许多类报声明的包”com.test“与期望的包”com.Test“不匹配这类错误,查看报错的源文件及文件目录,笔者发现源文件中写的是类似package com.test,而文件目录则为com\Test,笔者对Ant能编译通过深感好奇与困惑,立马写一个测试程序进行试验。
David John Wheeler有一句名言“计算机科学中的任何问题都可以通过加上一层间接层来解决”,一层不够就再加一层。后半句是我加的 (* ̄︶ ̄) ,虽然有点玩笑的意思,但是也的确能说明一些问题。计算机科学的确是靠着一层又一层的抽象与封装解决了巨量的问题。
在讲解Netty客户端程序时候我们提到指定NioSocketChannel用于创建客户端NIO套接字通道的实例,下面我们来看NioSocketChannel是如何创建一个Java NIO里面的SocketChannel的。
Kafka在0.10版本推出了Stream API,提供了对存储在Kafka内的数据进行流式处理和分析的能力。
本文将从流式计算出发,之后介绍Kafka Streams的特点,最后探究Kafka Streams的架构。
定时消息与延迟消息在代码配置上存在一些差异,但是最终达到的效果相同:消息在发送到 MQ 服务端后并不会立马投递,而是根据消息中的属性延迟固定时间后才投递给消费者。
类加载的整个生命周期:加载–验证–准备–解析–初始化–使用–卸载 7个阶段,其中验证、准备、解析部分统称为连接。
1. 使用new关键字实例化对象的时候,读取或设置一个类的静态字段(该字段不被final修饰)的时候,以及调用一个类的静态方法的时候
2. 使用java.lang.reflect包的方法对类进行反射调用的时候
3. 当初始化一个类的时候,如果发现其父类还没有进行过初始化,则需要先初始化其父类
4. 当虚拟机启动的时候,用户需要指定一个要执行的主类,虚拟机需要先初始化这个主类
5. 当使用JSK1.7的动态语言支持时,如果一个java.lang.invoke.MethodHandle实例最后的解析结果REFgetStatic、REFputStatic、REF_invokeStatic的方法句柄,并且这个方法句柄说对应的类没有进行过初始化
JEP 316: 在可选内存设备上的分配堆内存
Owner |
Kishor Kharbas |
Created |
2016/12/13 19:31 |
Updated |
2018/03/20 20:32 |
Type |
Feature |
Status |
Closed / Delivered |
Component |
hotspot / gc |
Scope |
JDK |
Discussion |
hotspot dash dev at openjdk dot java dot net |
Effort |
M |
Duration |
M |
Priority |
3 |
Reviewed by |
Mikael Vidstedt |
Endorsed by |
Mikael Vidstedt, Vladimir Kozlov |
Release |
10 |
Issue |
|
Netty 是一个高性能的 NIO 网络框架,本文基于 SpringBoot 以常见的心跳机制来认识 Netty。
最终能达到的效果:
JEP 314: 额外的 Unicode 语言标签扩展
Owner |
Naoto Sato |
Created |
2017/03/24 23:19 |
Updated |
2018/03/06 17:15 |
Type |
Feature |
Status |
Closed / Delivered |
Component |
core-libs / java.util:i18n |
Scope |
SE |
Discussion |
i18n dash dev at openjdk dot java dot net |
Priority |
2 |
Reviewed by |
Alan Bateman, Brian Goetz |
Endorsed by |
Brian Goetz |
Release |
10 |
Issue |
Summary
增强 java.util.Locale 和相关 API,实现 BCP 47 语言标签中额外的 Unicode 扩展。
作者: Roman Kennke
创建时间:2016/08/06 08:45
更新时间:2018/04/09 12:37
类型: 特性
状态: 已关闭/已提交
组件:hotspot/gc
范围:实现类
讨论: openjdk.java.net上的hotspot-gc-dev