自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 并发编程 出纳-顾客模型 仿真练习

这个仿真模型包括如下几个对象:顾客: 随机的时间间隔出现顾客,每个顾客办理业务的时间也是随机。顾客会排队办理业务。出纳: 每次选取排在最前面的顾客进行服务,服务时间由顾客的业务时间而定。出纳经理: 每隔一段时间,查看顾客排队的人数,排队的人多就增加出纳窗口,排队人少的话,就减少出纳窗口,让出纳休息。通过调整这个模型的参数: 1.顾客出现的时间间隔2...

2010-11-29 22:09:37 125

原创 Semaphore--给队列加上许可证

在如下的场景,我们可能需要加入类似许可证的实现:有一个资源队列,不管在什么情况下,都只允许指定数目的资源被使用,资源被使用,并归还之后,新的任务才能使用这些资源。[code="java"]public class TestSemaphore { static int count=0; Random r=new Random(47); BlockingQueue qu...

2010-11-28 16:12:09 101

原创 shutdown和shutdownNow--多线程任务的关闭

采用5.0的线程池关闭线程,不管怎样,最后都是调用Interrupt.而interrupt这个方法,并不是什么情况下都能结束线程,释放资源。Interrupt只是在线程阻塞的时候,抛个异常出来,从而结束这个阻塞。比如像下面的这种代码,就不管怎么shutdown,或者是shutdownNow,都不会关闭:[code="java"]while(true){ try { ...

2010-11-28 14:22:38 265

原创 PriorityBlockingQueue优先级规则

PriorityBlockingQueue里面存储的对象必须是实现Comparable接口。队列通过这个接口的compare方法确定对象的priority。 规则是:当前和其他对象比较,如果compare方法返回负数,那么在队列里面的优先级就比较搞。下面的测试可以说明这个断言:查看打印结果,比较take出来的Entity和left的entity,比较他们的priority...

2010-11-28 10:17:25 583

原创 ThreadPoolExecutor线程池实现逻辑

之前不知道是看了哪篇文章,形成了一个概念,说ThreadPoolExecutor的线程超时回收机制,是采用的DeplyQueue,我觉得非常惊讶,DeplyQueue虽然说是超时的能够取出回收,但是那些没有超时的对象,是怎么也取不出来的啊,带着这个问题,我详细阅读了一下这部分的源代码,发现其实现和DelayQueue一点关系也没有,也算是解决了我的一个疑问。该线程池的实现,主要有两个容器,...

2010-11-27 23:08:22 89

原创 各种同步方法性能比较(synchronized,ReentrantLock,Atomic)

5.0的多线程任务包对于同步的性能方面有了很大的改进,在原有synchronized关键字的基础上,又增加了ReentrantLock,以及各种Atomic类。了解其性能的优劣程度,有助与我们在特定的情形下做出正确的选择。总体的结论先摆出来: synchronized: 在资源竞争不是很激烈的情况下,偶尔会有同步的情形下,synchronized是很合适的。原因在于,编译程序...

2010-11-27 10:27:24 468

原创 阻塞任务队列DelayQueue

DelayQueue也和其他阻塞队列一样,采用put和take进行存储。但有意思的是,这个队列里面所存储的对象都带有一个时间参数,采用take获取数据的时候,如果时间没有到,取不出来任何数据。而加入数据的时候,是不会阻塞的。一般用在清理超时对象的场景:比如,有一批对象,用完后存入(offer)这个队列,并设定60秒delay(超时), 然后有个线程在外面拼命的take,如果有任...

2010-11-24 22:14:20 138

原创 多线程任务协作:CountDownLatch的使用

多线程任务协作中,如果有一个任务,需要在其他线程的任务完成以后才能执行的情况下,CountDownLatch就派上用场,它能使用很少的代码,省掉一堆wait和notify,帮你很放心的完成这种协作。使用步骤:1. 首先所有协作线程都引用同一个CountDownLatch2. CountDownLatch初始化传入一个计数器3. 最后执行的那个任务,需要调用CountDown...

2010-11-24 18:50:56 141

原创 JDK5提供的阻塞队列

JDK5的concurrent包里面尽是宝贝,还好我有的是时间,正好可以一一八来。以前用多线程处理 生产者-消费者 问题的时候,需要采用wait,notify, 现在有了这些阻塞队列,就可以把这些wait,notify抛一边,轻易的就能解决问题。首先是SynchronousQueue,这个队列里面只能放一个对象,在没有被take之前,所有的add都会被阻塞,反之,如果队列里面没有对...

2010-11-24 18:19:39 105

原创 五天学会绘画--像艺术家一样思考

我一直觉得能够绘画的人,他们一定有自己的一套方法,对事物的观察,有独到之处,能够发现事物的神韵,然后记录到画纸上。《五天学会绘画》这本书给出了答案,这是一种右脑思维的模式,当你进入到这种模式的时候,眼前的事物,就不再是一个整体,在这个思维里面,他们是一个个的圆形,方形,线条,他们的位置,比例... 当你用笔把这些东西组合起来的时候,事物的神韵就体现出来了。按照书中所提示的方法,我也...

2010-11-22 12:12:12 525

原创 线程外捕获某个线程内异常的方法

由于线程本质的特性,我们并不能直接捕获从线程中逃逸的异常,一旦异常逃逸出run方法,那它就直接上控制台了。[code="java"] /* * 1.Thread的异常在Thread外面是捕获不到的 */ public static void testThreadException(){ ExecutorService se=Exec...

2010-11-20 16:24:43 296

原创 Java并发整理笔记

前面对并发编程,我一直是心怀崇敬,如履薄冰。尽管如此,稍微复杂一点的并发任务,就搞的焦头烂额。现整理一些学习笔记,以便随时记录,随时巩固。 [code="java"] //该线程池是个可以回收利用的线程池,按需产生线程,可以被复用,线程可以闲置60秒,或者被销毁 //一般多线程程序,首选该线程池 public static void testCach...

2010-11-20 15:21:43 135

原创 五分钟和陌生人成为朋友

买这本书就冲着这个书名了,五分钟和陌生人成为朋友,有点不可思议。每个人都希望自己有很多朋友,但现实中,像我这样的技术类IT人,朋友真的少的可怜。且不说朋友,就连认识的,见了面能知道名字,能够说的上话的都不多。想想都有些悲哀,在联想那几年,实验室有两三百人,而真正能知道名字,见面会主动打个招呼的,估计也就三分之一;离职后还能再联系的,也就两三个了。这方面真的需要改善了,希望还来的及。...

2010-11-14 22:41:30 206

原创 22条商规(美国CEO最惧怕对手读到的书) 读后感

这本书名头起的很大,号称美国CEO最惧怕对手读到的书,不过能实际规律,总结一下也就那么几条。花了一个晚上,以及一个早上的时间就读完了,收获不少,作者用无数的实例证明着这些商规的重要性。买这本书的时候,还真的是不得不感慨一下当当网数据挖掘的功力,自从我看完影响力这本书以后,对营销,心理学等产生了兴趣,当当网好像很清楚这一点一样,给我推荐了一系列相关的书籍让我欲罢不能。然后我就又买了销售圣经,...

2010-11-12 09:20:47 349

原创 GUI设计理念《GUI设计禁忌2.0》笔记

需求分析的基本问题:1. 专注于用户的任务,Task,而不是所谓的技术。2. 时刻清楚谁是最终用户,最终用户使用你的软件所需要服务的对象是谁。3. 软件做什么用的,支持什么活动,解决什么问题,提供什么价值4. 当前的客户他们所面对的问题是什么,对于目前的工作,他们喜欢什么,不喜欢什么。5. 当前的客户具备什么样的知识水平,是否有学习的意愿,他们经常怎么去学。...

2010-11-11 12:32:01 442

原创 GUI设计理念《Don't Make me Think》笔记

第一章:最有用的一个定律就是这个书名,不要让用户思考,这是做界面最最基本的原则。具体实施会包括许多许多细节,比如图片的暗示,口号,布局,心理研究,习惯用法 等等。事实上,很多地方都可能会强迫用户去思考:1.长得不太像按钮的,类似按钮控件2.搜索框中,过多的选择,或者下拉框3.前后不一致的描述,让用户疑惑终极目标就是要让界面做到不言而喻的效果,如果做不到,那也...

2010-11-11 12:29:59 151

原创 LeaderShip培训记录

Leader Ship是一种管理的方法,与管理者的技术关系不是很大。技术能力强的,不一定能够成为一名合格的leader。Leader有两个责任,1,和团队一起完成project, 2,负责团队成员的成长Leader的类型也有两种: 1是管理奴才的, 2是管理人才的组内成员评估:XXX D3 -- D4之间, 能力已经很不错,但是在于设计思想方面还可以进一步提...

2010-11-11 12:28:40 159

原创 原来5.0就已经优化好了字符串的连接符号

5.0里面, 字符连接用+号,速度已经可以和StringBuffer媲美了,其唯一的限制就是采用+号连接的时候,不能跨循环。看来编译过程中做了很多优化的工作啊, 本来我还一直以为到6.0以后才有这个优化的,没想到5.0就有了。 public static void addString(){ String b=""; long start=Sys...

2010-11-11 12:24:56 91

原创 Java垃圾回收

之前总是觉得掌握了Java的垃圾回收机制,但稍微讨论下,就发现自己了解的不够全面,现在重新整理一下,感觉还是不错:关于finalizer():用于清理非正常开启的内存,一般情况下,只有你用native code时候,打开了内存区域,然后在finalizer方法里面进行关闭清理,但一般都不推荐这么做。打开了内存,不用就自己写方法关闭, finalize只用来检测bug,非正常的关...

2010-11-11 12:20:10 119

原创 Mysql性能调优与架构设计--笔记

登入mysql主机:mysql -uadm -pbbnd_adm --prompt="\\u@\\h\\Y:\\m:\\r:\\m:\\s>" --tee=operat.log--tee帮助拷贝屏幕--prompt标记提示目前所处那个mysql,展示账号,ip等查看mysql状态的工具mysqladmin -uadm -pbbnd_adm -h loca...

2010-11-11 12:17:23 113

原创 原来我也有博客

最近这一年,看了许多的书,也积累了不少读书笔记,心得体会。这些笔记,我觉得是我最重要的资料,早想开个博客,传到网上来保存。而今天,无意间输入我自己的名字,发现原来我已经在javaeye有个博客了,哈,马上用起来。笔记记录看书过程中的一些要点,方便复习,前言不搭后语的情况也是存在,估计也只有我自个能看懂。万一被哪位看官翻到,还请海涵。...

2010-11-11 12:15:01 71

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除