知其所以然本文不是教程向,倾向于分析科学上网的一些原理。知其所以然,才能更好地使用工具,也可以创作出自己的工具。 科学上网的工具很多,八仙过海,各显神通,而且综合了各种技术。尝试从以下四个方面来解析一些其中的原理。大致先原理,再工具的顺序。 dns http/https proxy vpn soc ...
在hexo里配置remarkjs
remarkjs是一个比较流行的用md格式写slides的库 :https://github.com/gnab/remark 打算在hexo里增加对remark的支持。但是hexo会把所以的source目录下的md后缀的文件全部转换为html。这样就很蛋疼了。 研究了下,发现hexo支持html, ...
netstat统计的tcp连接数与⁄proc⁄pid⁄fd下socket类型fd数量不一致的分析
最近,线上一个应用,发现socket数缓慢增长,并且不回收,超过警告线之后,被运维监控自动重启了。 首先到zabbix上观察JVM历史记录,发现JVM-Perm space最近两周没有数据,猜测是程序从JDK7切换到JDK8了。问过开发人员之后,程序已经很久没有重启了,最近才重新发布的。而在这期间, ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in ...
C++11的thread代码分析
前言本文分析的是llvm libc++的实现:http://libcxx.llvm.org/ class threadthread类直接包装了一个pthread_t,在linux下实际是unsigned long int。 class thread{ pthread_t __t_; ...
C++11中的mutex, lock,condition variable实现分析
前言本文分析的是llvm libc++的实现:http://libcxx.llvm.org/ C++11中的各种mutex, lock对象,实际上都是对posix的mutex,condition的封装。不过里面也有很多细节值得学习。 std::mutex先来看下std::mutex: 包增了一个pt ...
Java的LockSupport.park()实现分析
LockSupportLockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语。LockSupport实际上是调用了Unsafe类里的函数,归结到Unsafe里,只有两个函数: public native void unpark(Thread jthread ...
并行编程之条件变量(posix condition variables)
前言在整理Java LockSupport.park()的东东,看到了个”Spurious wakeup”,重新梳理下。 首先来个《UNIX环境高级编程》里的例子: #include <pthread.h>struct msg { struct msg *m_next; /* ...
C++11中once_flag,call_once实现分析
前言本文的分析基于llvm的libc++,而不是gun的libstdc++,因为libstdc++的代码里太多宏了,看起来蛋疼。 在多线程编程中,有一个常见的情景是某个任务只需要执行一次。在C++11中提供了很方便的辅助类once_flag,call_once。 声明首先来看一下once_flag和 ...
扯谈web安全之JSON
前言JSON(JavaScript Object Notation),可以说是事实的浏览器,服务器交换数据的标准了。目测其它的格式如XML,或者其它自定义的格式会越来越少。 为什么JSON这么流行?和JavaScript无缝对接是一个原因。 还有一个重要原因是可以比较轻松的实现跨域。如果是XML,或 ...