看thrift源码发现selector.wakeup()方法,通常在selector.select()后线程会阻塞。使用wakeup()方法,线程会立即返回。源码分析应该是用的线程中断实现的。下面是个小demo 我们看下wakeup()注释 可以看出,这个方法会让阻塞的线程立即返回。跟进poll实现 ...
分类:
其他好文 时间:
2018-07-31 15:20:25
阅读次数:
309
[TOC] 一、理解操作系统 操作系统( )统管了计算机的所有硬件,并负责为应用程序分配和回收硬件资源。 硬件资源总是有限的,而应用程序对资源的欲望都是贪婪的。 当多个应用程序发生硬件资源争夺时, 负责出面调度,保证多任务的资源分配以保证系统稳定执行。 只有 可以执行代码,所以应用程序(任务)执行前 ...
分类:
编程语言 时间:
2018-07-26 13:17:27
阅读次数:
163
1、事务(Transaction): 事务是将一系列数据操作绑成一个整体进行统一管理。 如果一事务执行成功,则咋子该事务中进行的所有数据更改均会提交,称为数据库中的永久成部分。 如果事务执行是遇到错误且必须取消或回滚,则数据将全部恢复到操作前的状态,所有数据的更改均被清除。 定义: 事务是一种机制、 ...
分类:
数据库 时间:
2018-07-21 18:28:37
阅读次数:
200
前言: 本文基于jdk1.8。 前段时间换工作,面试时候每次都会问线程的问题,自己对多线程方面的知识没有花时间研究过,所以一问到线程就懵了,最近特地买了方腾飞老师的《Java并发编程的艺术》这本书学学这方面的知识。这篇随笔主要是我对线程池学习的总结,如有写的不好或不对的地方欢迎指出! 1、线程池的基 ...
分类:
编程语言 时间:
2018-07-19 19:12:14
阅读次数:
224
## ``` # class (1) name: The fully qualified .NET class name of the persistent class (or interface), including its assembly name. (2) table(optional -... ...
分类:
Web程序 时间:
2018-07-15 21:28:17
阅读次数:
204
Nginx介绍Nginx:engineX,2002年,开源,商业版NGINX是免费,开源,高性能的HTTP和反向代理服务器,邮件代理服务器,通用TCP/UDP代理服务器解决C10K问题(10KConnections)官网:http://nginx.org二次开发版:Tengine,OpenResty(章亦春)I/O介绍I/O:网络IO:本质是socket读取磁盘IO:每次IO,都要经由两个阶段:第
分类:
其他好文 时间:
2018-07-13 23:17:24
阅读次数:
217
看到树莓派上一个3.5mm耳机口,从来没用过,折腾一下。 ...
分类:
其他好文 时间:
2018-07-13 15:11:14
阅读次数:
144
双重检查锁定在延迟初始化的单例模式中见得比较多(单例模式实现方式很多,这里为说明双重检查锁定问题,只选取这一种方式),先来看一个版本: 上面是最原始的模式,一眼就可以看出,在多线程环境下,可能会产生多个Singleton实例,于是有了其同步的版本: 在这个版本中,每次调用getInstance都需要 ...
分类:
其他好文 时间:
2018-07-05 00:41:47
阅读次数:
130
Error: Config Error: This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is eit ...
分类:
移动开发 时间:
2018-07-02 13:08:15
阅读次数:
329
一、从原子操作开始 从相对简单的Atomic入手(java.util.concurrent是基于Queue的并发包,而Queue,很多情况下使用到了Atomic操作,因此首先从这里开始)。 很多情况下我们只是需要一个简单的、高效的、线程安全的递增递减方案。注意,这里有三个条件: 这三个条件看起来比较 ...
分类:
编程语言 时间:
2018-06-29 14:20:14
阅读次数:
197