- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 Java线程之CyclicBarrier
CountDownLatch和CyclicBarrier都能在线程执行时设置中间等待位置,表面上看相似度很高,下面讲讲他们的区别: CountDownLatch是线程A等待B。它有着明确的顺序,A先执行,到中间等待位置后,A调用countDown()方法,激活B,B才开始执行。再强调一下,这个类强调顺序,A先,B后 CyclicBarrier是线程间互相等待,即A和B互相等待,
2013-02-19 20:53:27 4943 1
原创 Java实现希尔排序
希尔排序步长的选择很重要,不同的选择方式性能差异很大。为了做实验,生成一个长度为 0x400000(该数字为16进制)随机的整形数组,存放于硬盘上的文本文件内。每次排序均将此数组读入内存后,再排序,再将排序结果写入硬盘文件。只对排序操作计时,读文件和写文件不计时。步长选择方式为最基本的1,2,4,8,16,32,64...size/2在我的测试中,排序耗时7150毫秒 priv
2013-02-17 23:00:15 4521
原创 Java线程之CountDownLatch
CountDownLatch是一个高级的线程同步工具,可以理解为一个闸门,先运行一些线程,计算出一些结果,满足条件后,开闸,然后另一些线程启动。换句话说,它将多个线程分为2类,一类开闸前运行,一类开闸后运行。对于开闸后运行的线程,调用await()方法后,进入等待状态,等待开闸。它内部有一个计数器,初始状态计数器为用户设定的正整数,当开闸前某个线程运行完毕后,调用它的countDown()方法
2013-02-15 23:12:02 2629
原创 Java线程之Semaphore
之前一直对Semaphore不是很理解,感觉它功能十分简单,用Lock加Condition完全可以轻易替代它,觉得它根本没有存在的必要。最近遇到一个例子,用Semaphore可以优雅的实现,用Lock加Condition却让我大费脑筋,主要原因是自己水平太菜。记录下来,免得以后忘了。例子:某单位有3台打印机,有10个用户提交打印任务,写程序模拟对打印机的管理。不废话,直接上代码publ
2013-02-13 21:15:19 2739
High Performance MySQL 3rd Edition
2012-11-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人