摘要:
在运用CAS做Lock-Free操作中有一个经典的ABA问题:线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。但实际上这时的现场已经和最初不同了,尽管CAS成功,但可能存在潜藏的问题,例如下面的例子:现有一个用单向链表实现的堆栈,栈顶为A,这时线程T1已经知道A.next为B,然后希望用CAS将栈顶替换为B:head.compareAndSet(A,B);在T1执行上面这条指令之前,线程T2介入,将A、B出栈,再pushD、C、A,此时堆栈结构如下图,而对象B此时处于游离状态:此时轮到 阅读全文
推荐排行榜
Python打印log,包括行号,路径,方法名,文件
2013-07-18 11:09 by java20130722, 3082 阅读, 收藏,
摘要:
logger.py 文件 #!/usr/bin/python # coding: utf-8 import logging import logging.handlers from logging import * from datetime import * logger = logging.getLogger() logger.setLevel(logging.DEBUG) rht = logging.handlers.TimedRotatingFileHandler("reindex_out.log", 'D') fmt = logging.Forma 阅读全文
makfile中.PHONY的认识
2013-07-02 16:12 by java20130722, 4382 阅读, 收藏,
摘要:
install:foo install -m 644 foo /usr/bin.PHONY: install看以上makefile的片段,使用了.PHONY这个目标,下面详细介绍她的用法.来源:点击打开链接.PHONY是一个特殊工作目标(special target) 它用来指定一个假想的工作目标,也就是说它后面的并不是一个实际文件,而且肯定要视为未更新(也就是说条件总是满足,需要处理) PHONY 目标并非实际的文件名:只是在显式请求时执行命令的名字。有两种理由需要使用PHONY 目标:避免和同名文件冲突(防止存在和PHONY执行目标的名称相同的文件,虽然在写比较小的makefile工程的. 阅读全文
Hive建表实例——定义serdeproperties属性
2013-06-09 23:36 by java20130722, 10603 阅读, 收藏,
摘要:
创建table时,直接定义serdeproperties属性,create table wzhg(
c0 string,
c1 string,
c2 string
)row format serde 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
with serdeproperties (
'input.regex' = 'bduid\\[(.*)\\]uid\\[(\\d+)\\]uname\\[(.*)\\]',
'output.format.string' = ' 阅读全文
手动安装cloudera cdh4.2 hadoop + hbase + hive(一)
2013-05-12 00:10 by java20130722, 679 阅读, 收藏,
摘要:
安装版本hadoop-2.0.0-cdh4.2.0
hbase-0.94.2-cdh4.2.0
hive-0.10.0-cdh4.2.0
jdk1.6.0_38
安装前说明安装目录为/opt检查hosts文件关闭防火墙设置时钟同步使用说明安装hadoop、hbase、hive成功之后启动方式为:启动dfs和mapreduce desktop1上执行start-dfs.sh和start-yarn.sh启动hbase desktop3上执行start-hbase.xml启动hive desktop1上执行hive规划 192.168.0.1 NameNode、Hive... 阅读全文
浙公网安备 33010602011771号