坚信科学,分享技术

2018全新版本,未来在blog.54chen.com更新博客!

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Yearly Archives: 2009

人人网内部培训:java并发编程原理-synchronize volatile-张洁大侠

来自人人网内部培训的最新消息: 北京时间今天下午不明时间,一群人在张洁大侠的培训下,对java并发编程原理-synchronize volatile等进行了激励的讨论和学习。出席本次会议的有。。。 言归正传,说,并发,就会出现锁。 1.互斥锁实现算法 使用一个并发队列: do{ pre=head; newNode->next=prev; }while(!cas(head,prev,newNode)); 此代码中cas是操作系统提供的compare and swap接口,能保证原子性操作(类似memcache的cas)。 2.编译器指令优化使内存指令重排序与并发编程 并发的程序会受到指令重排序的影响,顺序执行的程序逻辑不会受影响。 例子: int a=b=0; Thead1 { a=1; b=2 } Thread2 { if(b==2) { System.out.println(a); //这个a会是多少? } } 上例中Thread2并不一定会打出1来,因为在Thread1中的两个指令会被编译器优化时交换了顺序,出现了与我们想像中不一样的逻辑。 3.增加synchronize抑制内存指令重排序 synchronize的作用是什么呢,经常都说是同步,市面上的说法是,jvm在运行的时候,变量会在本地有一个内存区,另外还有一个主存区,同步的含义就是将本地的值同步到主存去。 这个说法没有明确的错误,而且在一定程度上还能帮助你理解synchronize的作用,然而内部真正的原因,是利用synchronize建立内存屏障,使其能够抑制内存指令的重排序,从而使并发程序达到我们想像中的

Continue reading

Posted in java | Tagged , , | 3 Comments

一周废话汇总【54chen Twitter 2009-11-07】

多谢各位帮转,房子已经找到,现在转租蓟门桥两居中一居,老小区,安静,六层,有空调,装修一般,15平。~~1150/m # 成年人遇到的问题最大的是爱情问题,其次是没有爱情的问题。 # 联合早报:“当局透露是为了缓解华北旱情而人工造雨,结果带来大雪。” # 安徒生童话——调程序的小男孩 # http://news.qq.com/a/20091102/000577.htm 人工影响催生22年最大初雪 本周气温重返20℃ # 甲流是一种生活状态 # 生病、旅行、放假的人很危险。古代人因为有闲暇创造了哲学,现代人有了闲暇可能会像李开复同学一样:思考着思考着就变了。“闲暇”是一件可怕的事情。 # 每当有人装B时,哥都会低下头,不是哥修养好,是哥在找砖 # @lierby 我是发给你地址了后才推的。。不过我也可以通过gtalk发的,只是消息老是会丢 # 某maillist: 在国内第一批开通wave的,大都是twitter上的那群不安份分子,他们搅黄了饭否,搅黄了twitter,wave一出来他们又第一时间进驻,对于wave的命运,我敢肯定加一定的说,只要一公测,必被和谐。 # 转自罗永浩: 我年纪越大,就越觉得那些心理阴暗,一肚子心计,满脑子阴谋论的人,是因为智力不够。这和我小时候的认识是大致相反的。尽管存在个体差异,但是整体上,足够聪明的,进化得更好的人群,通常会倾向于选择公平、正义,更容易具有坦诚、善良的品质。 # 天朝很神奇,一个游戏,闹到国务院去了,不知道要不要胡总出来说两句呢 # 当时笔、纸、中专生搞出了两弹,而现在我们泛滥的大学生搞上了对象。工作难找,只认为自己学历有了,

Continue reading

Posted in 生活备份 | Tagged | 1 Comment

java nio学习手记[收集]

传统的并发型服务器设计是利用阻塞型网络I/O 以多线程的模式来实现的,然而由于系统常常在进行网络读写时处于阻塞状态,会大大影响系统的性能;自Java1. 4 开始引入了NIO(新I/O) API,通过使用非阻塞型I/O,实现流畅的网络读写操作,为开发高性能并发型服务器程序提供了一个很好的解决方案。这就是java nio. 传统的阻塞型网络 I/O的不足: Java 平台传统的I/O 系统都是基于Byte(字节)和Stream(数据流)的,相应的I/O 操作都是阻塞型的,所以服务器程序也采用阻塞型I/O 进行数据的读、写操作。本文以TCP长连接模式来讨论并发型服务器的相关设计,为了实现服务器程序的并发性要求,系统由一个单独的主线程来监听用户发起的连接请求,一直处于阻塞状态;当有用户连接请求到来时,程序都会启一个新的线程来统一处理用户数据的读、写操作。 这种模式的优点是简单、实用、易管理;然而缺点也是显而易见的:由于是为每一个客户端分配一个线程来处理输入、输出数据,其线程与客户机的比例近似为1:1,随着线程数量的不断增加,服务器启动了大量的并发线程,会大大加大系统对线程的管理开销,这将成为吞吐量瓶颈的主要原因;其次由于底层的I/O 操作采用的同步模式,I/O 操作的阻塞管 理粒度是以服务于请求的线程为单位的,有可能大量的线程会闲置,处于盲等状态,造成I/O资源利用率不高,影响整个系统的性能。 对于并发型服务器,系统用在阻塞型I/O 等待和线程间切换的时间远远多于CPU 在内存中处理数据的时间,因此传统的阻塞型I/O 已成为制约系统性能的瓶颈。Java1.4 版本后推出的NIO 工

Continue reading

Posted in java | Tagged , | Leave a comment

linux系统更换sshd的方法手记[from科学院]

朋友的服务器让人给黑了,把sshd都给更换了,拿到root用户名密码直接用curl往外传。绝对是老毛子的手法,非常娴熟,入侵涉及的方案有perl服务、c、shell、curl、php exec等等。 在最简单的分析下,采取更换sshd服务的办法来去除老毛子的垃圾sshd. 第一步、下载、安装 wget -c "ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-5.0p1.tar.gz" tar zxvf openssh-5.0p1.tar.gz cd openssh-5.0p1 请确认Zlib和OpenSSL的版本: openssh-5.0p1要求Zlib的版本在1.2.1.2以上,OpenSSL版本在0.9.6以上.下面是Zlib和 OpenSSL的官方地址: http://www.gzip.org/zlib/ http://www.openssl.org/ 在安装过程中我遇到了zlib的版本过低。从上边的网址去下一个 zlib-1.2.3.tar.gz tar zxvf zlib-1.2.3.tar.gz cd zlib-1.2.3 ./configure make && make install 然后重新进入 openssh-5.0p1: ./configure --sysconfdir=/etc/ssh make 这一步后面很牛B,要去到那个修改过的openssh的目录里 make uninstall (就是要把老毛子的病毒sshd给全部rm掉),然后再执行下面的步骤: make in

Continue reading

Posted in linux | Tagged , | 3 Comments

多nginx单php-fpm的配置方法[from科学院]

用php fastcgi和nginx搭配的形式是很常见的,在很BT的需求下,可能会需要多个nginx走不同的端口,而进程只用一个php-fpm。 本文所讲的环境比上述一句话还要BT,存在一个php-fpm,而且每个nginx都以一个非超级用户所有来进行运行。 这样就存在了一个BT的情况,php-fpm默认不能以root权限运行,而普通用户来运行的话,对其他用户的目录,php-fpm将没有权限,页面在运行php的时候,会提示404。 于是有以下的解决方案: 找到php的源代码 $src_path/sapi/cgi/fpm/fpm_unix.c 在文件顶部增加一个宏定义:#define I_REALLY_WANT_ROOT_PHP 重新 configure make make install 此时再修改php-fpm.conf 将user group都修改成root(经过上面的修改php-fpm已经支持root了)。 重启php-fpm. 配置各nginx.conf: location ~ .*\.(php|php5)?$ { #fastcgi_pass  unix:/tmp/php-cgi.sock; fastcgi_pass  127.0.0.1:9000; fastcgi_index index.php; include fcgi.conf; } 点到即止,不再多说。。。

Continue reading

Posted in linux, php | 6 Comments

一周废话汇总【54chen Twitter 2009-10-31】

各种翻墙都不方便了,试用下一美女推荐的主流进推工具。 # 即日起进入单身状态,欢迎各路好手推荐有理想、爱国、踏实勤奋的女朋友。 # @lixiaoshuan 嗯,哈哈 # 原来,除了金庸的十四部小说的题目能联成两句“飞雪连天射白鹿,笑书神侠倚碧鸳”之外,J.K.罗琳的七部作品也能联成一句话:“哈哈哈哈哈哈哈!” # 最近要做的事情就是调整,让一个没有良心的女人害得心神不宁,遇人不淑,老大说的对,放空才能冷静,不去害别人,也不让别人来害自己了。 # 前侍不忘,后事之师... # 董卓欲试手下忠心,召众臣会于室,使貂婵裸胸涂墨舞于室中。 忽,灯灭,目不及物,倾尔,灯亮。 卓视众臣手皆黑,唯吕布手白,卓欣然曰:布,忠臣也。 布笑,露黑齿 # @blogkid 会不会是机房掉电了。。。 in reply to blogkid # 智力题:5个小朋友分一个蛋糕,只准切三刀,该怎样才能平分?答案:一刀砍死一个小朋友,然后两刀把蛋糕切成四等分。。。 # http://bit.ly/Kb8e8 How FriendFeed uses MySQL to store schema-less data # 人生的画卷才开始展开,所有的事情都需要你处理的时候,才是真正的开始。 # 心正而后身修,身修而后家齐,家齐而后国治,国治而后天下平。 …

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

用java并发测试tokyo cabinet的性能[重大更正篇]

在前面一篇文章 用java并发测试tokyo cabinet的性能[五四陈手记] 提到了测试tc的效率问题,最后的结论是70W/s,由于当时的错误,导致了一些严重影响大家的结论,如今本着认真治学,谨慎小心的态度,重新公布最新的代码和结论,还望受影响的同志们不要发烧。。。 首先,总结上一次为什么会犯错的原因: 1. 测试代码有问题,TDB db = new TDB();不能放在线程中去new,也许是tc实现的问题,详细原因没有去研究。 2.赶着时间测,把写入的时候的结果直接给屏了。 重新公布新的测试代码: package test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import java.util.concurrent.atomic.AtomicLong; import tokyocabinet.*; public class BenchMark { private static List<TDB> dbList = new ArrayList<TDB>(); …

Continue reading

Posted in linux | Tagged , | 9 Comments

一周废话汇总【54chen Twitter 2009-10-24】

我帅的时候不做家务,做家务的时候不挣钱,挣钱的时候太花心,花心的时候没有安全感,有安全感的时候不浪漫,浪漫的时候不顾家,顾家的时候没出息,有出息的时候不体贴,体贴的时候又不帅 # 有时候收一束花是很幸福,收不到花是幸福,如果天天收,就成了假幸福了。 # 问:那些阳光的、意气风发的男生都在哪里啊?答:他们都长大了,成了颓废男人了... # 北京求租北三环到东三环,两居或者两居中的一居。多谢帮转 # 很久很久以前,谎言和真实在河边洗澡,谎言先洗好,穿了真实的衣服离开,真实却不肯穿谎言的衣服。后来,在人们的眼里,只有穿着真实衣服的谎言,却很难接受赤裸裸的真实。 #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment

清华万博-精武门 lamp环境内容回顾

精武门版权所有,复制请标明:http://www.54chen.com/c/809 第一部分:Linux基础 因为大多数同学没有任何基础,此课程不得不放慢脚步,但不要担心,所涉及到的东西都会在课程中反复讲解。 1.Linux指令: 1.1 SecureCRT连Linux接服务器后,默认进入自己的用户目录下。--/home/xxxx/ 题外: 目录的概念:.(一个点)当前目录 ..(两个点)上一级目录 <以后不能再分不清楚这两个东西了哈> 相对目录和绝对目录:/home/zzz/相对于/home/来说就是zzz目录,就可以cd /home/后再cd zzz进入到/home/zzz (其中滋味要慢慢体会,只能体会,一定要体会清楚) 1.2 Linux命令行 命令[空格]参数1[空格]参数2[空格]。。。 2.常用命令: cp a b --copy的简写 复制文件的意思,从a复制到b mkdir xxx --make directory的简写,新建文件夹的意思,建立一个叫xxx的文件夹 ls --list的简写,显示当前文件夹下所有文件 精武门版权所有,复制请标明:http://www.54chen.com/c/809 第二部分:LAMP环境 2.1 编译程序中的三板斧: configure 检测硬件,配置MakeFile文件 make 编译 make install 安装 …

Continue reading

Posted in linux, php | Tagged , | 9 Comments

一周废话汇总【54chen Twitter 2009-10-17】

这是一个物欲横流的时代,要想保持爱情的纯真,难,非常难! # 通过gtalk更新twitter抽经了?弹出这么多OK给我 # 10月12日消息,消息人士透露,腾讯已和目前第三方社交应用提供商“五分钟”达成协议,一次性购买该公司开发的热门社交游戏“开心农场”。 # 转我技术文章不留出处的人,真的让人恼火。。。。。。。。一点技术含量都没有。。。 # 你还很年轻,将来你会遇到很多人,经历很多事,得到很多,也会失去很多, 但无论如何,有两样东西,你绝不能丢弃,一个叫良心,另一个叫理想。 # 模电老师曰:"同学们,这个放大器是增益可变的。"全班旋暴走,曾哥还会变放大器? # http://news.163.com/09/1015/09/5LLI73H100013AU6.html 速来围观 # 杀千刀的搜狗输入法,我明明设置了不自动升级,又开始每天一升级了。 #

Continue reading

Posted in 生活备份 | Tagged | Leave a comment
Page 3 of 121234510...Last »