- 浏览: 454835 次
- 性别:
- 来自: 杭州
最新评论
-
小灯笼:
Netty源码剖析视频教程网盘地址:https://pan.b ...
Netty -
ainaruto10:
Java NIO -
ainaruto10:
mark以后仔细看
Netty -
kongdong88:
Netty简单应用与线上服 ...
Netty -
13592539017:
13592539017 写道nich002 写道广告狗滚出IT ...
Netty
文章列表
从JDK1.5开始,Thread类里加了线程状态的枚举:State。
其共有6项:NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED。
NEW:线程创建到start方法被调用前,状态为NEW;
RUNNABLE:对JVM而言是正在执行,但可能正在等待操作系统的CPU时间片;
BLOCKED:等待monitor lock,即等待进入synchronized同步块或方法;
WAITING:当调用了Object.wait(),Thread.join(),LockSupport.park()后,进入等待状 ...
Java异步编程之Deferred
- 博客分类:
- Thinking
写了很简单的例子,用来测试 https://github.com/OpenTSDB/async
通过例子,可以看出Deferred的使用方式,执行顺序,理解了这个例子,基本上就明白了Deferred的工作机制。
Maven依赖:
<dependency>
<groupId>com.stumbleupon</groupId>
<artifactId>async</artifactId>
<version>1.4.1 ...
修改Windows XP Home目录
- 博客分类:
- Life
众所周知,在Linux上,Home目录是一个很重要的概念。Windows上也有类似的一个目录,比如C:\Documents and Settings\Barton,就是Barton这个用户的Home目录。
只是,Documents and Settings 这个文件夹名字,我非常非常不喜欢,就像不喜欢C:\Program Files中的Program Files一样,硬是要把它简化成App,这个也要来改一改。
1、我的电脑 -->右键-->管理,找到本地用户和组,选用户,出来以下界面:
2、在你要修改的用户(这里用Barton)上右键,选择属性:
...
重新用Windows后,一下子不知道要用什么软件了,觉得有必要整理下。
输入法:小狼毫
聊天:QQ,微信
浏览器:Chrome
笔记:印象笔记
编辑器:Sublime
邮箱:Foxmail
命令行:ConEmu(本机),xshell(远程)
资源管理器:Clover
手势:WGestures
翻译:Lingoes
编码:IDEA CE
字体美化:MacType
基于Spring boot的非常简单的WebSocket客户端与服务端通信,真心不想写Socket,用Netty写着太累,真心没多少时候需要那么好的性能。
在握手时,试着传个参数,发现没问题,整体用起来,Spring的东西很靠谱。
服务端:
import com.google.common.base.Strings;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
imp ...
测试报上来一个问题,我们几个开发机器上都不能重现,仔细看了下异常提示,确定是这台Windows测试机器少dll。
这个项目用到leveldbjni-all这个内置jni的包,但少了系统的dll,这个Jar就不能正常工作了。
如何知道少了哪些dll呢?
找到一个比较好的工具:DllWalker
这是一个绿色软件,从官方下载下来,双击depends.exe即可运行,点 打开,选 leveldbjni.dll,这个软件会分析出来 缺少哪些dll,当把这次提示的dll都装好后,F5刷新一下,可能还会有新的未安装的dll,这些是刚才安装的dll的依赖。
dll到哪 ...
Java 日期 时间 字符串 正则 校验
- 博客分类:
- Funning
最近做的事情,日期时间用的是字符串在传,需要对之进行校验。
网上看了看,没找到非常满意的,于是自己动手,写了一个。
其中不完美的是:没有根据闰年判断2月分有没有29这一天。
其中要说明的:
1、年份限制在2000~2999这1000年中。
2、基本格式如下:
年:yyyy
月:yyyy-[M]M
日:yyyy-[M]M-[d]d
时:yyyy-[M]M-[d]d HH:00:00
时间:yyyy-[M]M-[d]d HH:mm:ss
private static final String yearPattern = "^2[0- ...
lua socket UDP 广播包 例子
- 博客分类:
- Life
写了个UDP广播的例子,发送广播包,等待回复,3秒钟没有回复结束。
local socket = require("socket")
local udp = assert(socket.udp())
udp:setoption('broadcast', true)
udp:settimeout(3)
assert(udp:sendto("Z-SEARCH * \r\n", '255.255.255.255', 12345))
local r = udp:receive()
while r do
print(r)
p ...
在SSL握手之前,拿到服务端的证书
- 博客分类:
- Life
在SSL握手时,客户端需要知道服务端的证书,如果证书必须先存在客户端的KeyStore中,那挺麻烦的!
在SSL握手过程中,服务端的确会把证书发给客户端,客户端肯定能拿到!
开始一直想着,一次握手,即拿到证书,又用这个证书来握手,建立连接,后来发现几乎不可行!
决定第一次握手时,先把证书拿到,再进行第二次SSL正式握手!用WireShark来看,Chrome访问HTTPS的站点也是这样做的!
不废话,直接上可用的代码:
import org.apache.http.conn.ssl.SSLContexts;
import javax.net.ssl.*; ...
根据复合主键删除表中重复数据
- 博客分类:
- CornField
一个数据库表中,开始可能随便放了一些数据,之后把多个字段定为复合主键(表示这几个字段组合后记录唯一)后,这几个字段组合起来,表中有重复的行,即垃圾数据,需要清理!
delete from A_TABLE
where
(COL_1,COL_2,COL_3,COL_4) in
(select COL_1,COL_2,COL_3,COL_4
from A_TABLE
group by COL_1,COL_2,COL_3,COL_4
having count(*) > 1)
and ID <> (select MAX(ID)
...
查JVM 的 CPU占用过高的通用思路
- 博客分类:
- Thinking
1、哪些线程使用过高?
top -H -p <PID>
可以按CPU使用运行排序,在top中按P。
2、把这些线程号记录下来;
3、打印JVM的堆栈信息:
jstack ${PID} > ${JSTACK_FILE};
4、把线程号转成16进制,到文件中找到这些线程;
5、根据线程的堆栈,分析具体原因。
为了在本机上方便用jvisualvm看linux机器上JVM运行状况,昨天配了一下jstatsd,网上教程很多。
1、先写jstatd.policy文件:
grant codebase "file:/root/softs/jdk1.7.0_45/lib/tools.jar" {
permission java.security.AllPermission;
};
2、写启动脚本:
#!/bin/bash
/root/softs/jdk1.7.0_45/bin/jstatd -p 1088 -J-Djava.security.policy=/r ...
昨天发现JVM CPU使用过高,到网上找分析工具,找到了这个叫jkiller的东东,记录一下。
项目地址:https://github.com/54chen/jkiller
当前完整脚本如下:
#!/bin/sh
export LANG="zh_CN.UTF-8";
export LC_ALL="zh_CN.UTF-8";
LOG_FILE="/tmp/jkiller.log";
JSTACK_FILE="/tmp/jstack.log";
PID="$1&q ...
bat shell 启动 java
- 博客分类:
- Thinking
一个java应用写好了,如何布署呢?
对程序员来说,真懒着管布署的事,写出来能跑,在IDE中能看,任务完成!
可做出来的东西,是要给人用的,并且不是给程序员用的,所以。。。
现在第三方库用的很多很多,打成一个Jar包,是件很方便的事,包太多,管理classpath有点烦。
一般java应用分成bin,conf,lib至少这3个文件夹,各有分工。
bin中放可执行的,conf放配置,lib放jar包。
希望conf和lib中所有的包加入到classpath中。
网上找的脚本,很多不能直接用,找来一个可以用的,自己亲测过,保存下来。
...
Java网络编程 NIO Netty
- 博客分类:
- Thinking
今天写了几篇博客,是我在公司内部技术分享的内容。
第一篇:Java Socket
第二篇:Java NIO
第三篇:Netty
PPT和源码,见附件!