- 博客(6)
- 资源 (4)
- 收藏
- 关注
原创 产品之死
当开始研发一个新的产品,我们就很容易忽略一个很重要的东西:时间。这个时间并不是指产品开发的进度,而是指:产品开发总的时间。一个产品并不是一朝一夕就能开发完的,往往要经过好几个版本,甚至说经过好几拨开发人员,而产品能否成功,这个因素必须要考虑进去。 1.不能拿开发项目的心态开发产品:很多产品之所以越走越难,往往是先期开发太草率。认为在先期,应该采用拿来主义,能够拿来所用的,我都可
2016-12-26 13:34:32 387
原创 Synchronize的使用
最近看很多文章在谈ArrayList和Vector的线性安全问题,特别拿来与大家一起研究下:1.如果不考虑多线程,讨论线性安全有意义吗?答:没有2.java.util.Vector的方法都被Synchronize修饰过,那么它就是线性安全的?答:对,因为set的时候不会被get,get的是没改过之前的数据。Synchronize永远作为一个整体执行,要么没有执行,要么都被执行。
2016-12-23 16:45:12 383
原创 线程sleep和对象wait一段时间的区别
它们的区别主要考虑两点:1.cpu是否继续执行、2.锁是否释放掉。对于这两点,首先解释下cpu是否继续执行的含义:cpu为每个线程划分时间片去执行,每个时间片时间都很短,cpu不停地切换不同的线程,以看似他们好像同时执行的效果。其次解释下锁是否释放的含义:锁如果被占用,那么这个执行代码片段是同步执行的,如果锁释放掉,就允许其它的线程继续执行此代码块了。明白了以上两点的含义,开始
2016-12-23 15:00:00 3228
原创 Object的锁使用
上一篇中用Condition实现了生产者和消费者,其中用到了Condition的await和singal,这个实现和Object的锁特别像,如果用Object的锁机制实现生产者和消费者,如下:import java.util.Date;import java.util.concurrent.ExecutorService;import java.util.concurrent.Exec
2016-12-23 11:04:37 4558
原创 concurrent包中condition的使用
首先回忆上一篇关于读写锁的知识。首先先看一个例子:import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * Created by lizhiqiang on 2016/12/22. */public class testCondition {
2016-12-22 15:54:23 271
原创 concurrent包读写锁ReentrantReadWriteLock的使用
读写锁一般用于抢占资源的读写问题,使用它避免并发造成的数据错误。ReentrantReadWriteLock锁使得写操作具有原子性,使得读操作具有并发性,而且使得写操作的时候,不会有读操作,读操作的时候不会有写。看下面的例子:import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorS
2016-12-22 14:50:32 385
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人