一个自带锁的简单队列, 用单向链表实现:
template
class FastQueue
{
struct node
{
T element;
node * next;
};
node * last;
node * first;
LOCK m_lock;
public:
FastQueue()
{
last = 0;
first = 0;
}
... // 以下暂省略
继续阅读 »
1. 迭代器模式
提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。迭代器模式的结构:
抽象容器:一般是一个接口,提供一个iterator()方法,例如java中的Collection接口,List接口,Set接口等。
具体容器:就是抽象容器的具体实现类,比如List接口的有序列表实现ArrayList,List接口的链表实现LinkList,Set接口的哈希列表的实现HashSet等。
抽象迭代器:定义遍历元素所需要的方法,一般来说会有这么三个方法:取得第一个元素的方法first(),取得下一个元素的方法next(),判断是否遍历结束的方法isDone()(或者叫hasNext()),移出当前对象的方
继续阅读 »
判断对象已经死的方法:1.引用计数法 2根搜索算法
GC Roots:
1 虚拟机栈(栈帧中的本地变量表)中的引用对象。
2 方法区中的类静态属性引用的对象。
3 方法区中的常量引用的对象。
4 本地方法栈中JNI(即一般说的Native方法)的引用的对象。
四种引用:
1.强引用只要引用还存在,垃圾收集器永远不会回收掉被引用的对象
2.软引用(SoftReference)用来描述一些还有用,但并非必需的对象。系统将要发生内存溢出异常之前,把这些对象进行回收。
3.弱引用(WeakReference)下一次垃圾回收发生时就会回收
4.虚引用(Phant
继续阅读 »
文/Robin
本站推广
币安是全球领先的数字货币交易平台,提供比特币、以太坊、BNB 以及 USDT 交易。
币安注册: https://accounts.binancezh.pro/cn/register/?ref=11190872
邀请码: 11190872
环境:
Linux:RHEL 6.1
MySQL:5.5
登录到MySQL。
bash
mysql -uroot -proot
创建测试表:
``` bash
mysql> USE test;
Database changed
mysql> CREATE TABLE data_type(cola smallint unsigned) DEFAULT CH
继续阅读 »
本文翻译自Cloud Academy。
AWS VPC最厉害的是它那令人难以置信的灵活性和安全性。亚马逊的VPC让你能够在它的独立虚拟网络中重新分配计算资源,例如EC2实例以及RDS部署,让你全权控制所有的进出流量。你还可以根据实际情况选择IP地址范围,子网集,路由表以及网络网关配置。一切尽在你的掌握之中。
继续阅读 »
身体、革命与“痛史”
我们对革命烈士理应表现出就有的尊敬,却不必通过无节制渲染暴力的方法,强化这种尊敬,何况这种渲染未必与历史的真相相符。最近看了国民党上海市长吴国桢的回忆录,他曾逮捕过数百名地下党,几乎都有迅速招供的纪录,这让他百思不得其解,心想难道这共产党内就没有誓死不吐秘密的汉子吗?他花了番心思考察,甚至仔细摘出了列宁的一段话进行分析,列宁曾告诫过搞地下工作的同志,说一定要记住,搞这种特殊工作的人,身体忍受力一定有一个极限。吴国桢发现地下党内部有个万一被捕如何应对酷刑的时间规则,就是在被捕后一定要坚守至二十四小时,最多到七十二小时即可开口,过了此期限招供即不算变节,因为人的身体忍耐是有一个限度的,超过这个极限就会难以忍受,二
继续阅读 »
用golang实现内存池
用golang做一个预分配的内存池,代码可以很小量做到。 实现细节,主要是一个链表,用来保存内存块.
定义2个值:
num 每次需要增长内存池的时候,预分配的内存块数量
size 预分配时,单个内存块的大小
继续阅读 »
1. 序列模型的例子
2. 符号定义
例如一个识别人名的模型,输入 $x$ 和输出 $y$ 如下表所示:
$x$
Harry
Potter
and
Hermione
Granger
invented
a
new
spell
$x^{\langle 1 \rangle}$
$x^{\langle 2 \rangle}$
$x^{\langle 3 \rangle}$
$x^
继续阅读 »
一 编程规约
(一) 命名规约
(二) 常量定义
(三) 格式规约
(四) OOP规约
(五) 集合处理
(六) 并发处理
(七) 控制语句
(八) 注释规约
(九) 其它
二 异常日志
(一) 异常处理
(二) 日志规约
三 MySQL规约
(一) 建表规约
(二) 索引规约
(三) SQL规约
(四) ORM规约
四 工程规约
(一) 应用分层
(二) 二方库规约
(三) 服务器规约
五 安全规约
* * *
more
一 编程规约
(一)命名规约
【强制】 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
继续阅读 »
以下内容是基于HashMap源码注视的翻译
Hash表是基于Map接口的实现,这种实现提供了所有原始map的操作,允许null value和null key。
HashMap类大致相当于HashTable,只是它是不同步,并允许使用空值。
此类对map秩序的维护不做任何保证;尤其是,它并不保证顺序随着时间的推移,将保持恒定。
此实现提供常数时间复杂度的get和put操作,假设散列函数妥善分散桶与桶之间的元素。
迭代集合视图需要的时间复杂度与HashMap实例 的 "capacity"(存储桶的数目)再加上它的key-value 映射的数量 成正比,
因此如果迭代性能重要的话,非常重要的事情是一定不要把Map的初始容量设置得太高或
继续阅读 »