- 博客(3)
- 资源 (6)
- 收藏
- 关注
原创 三个线程轮流执行顺序打印ABC(三):使用Lock实现
需求:有三个线程轮流执行,第一个线程打印A,第二个线程打印B,第三个线程打印C……循环10次。 思路:三个线程共享同一把锁、一个线程轮流状态state。线程拿到锁之后,通过state进行判断,如果轮到当前线程打印,则执行打印、更改state状态。每个线程都不停的循环,获取锁、判断state,执行打印,并……直到每个线程打印10次。 效率:由于三个线程不停的抢占锁,但是获取锁后不一定具备打印条件,所以
2017-12-10 16:26:47 3576 1
原创 三个线程轮流执行顺序打印ABC(二):使用Lock+Condition实现
需求:有三个线程轮流执行,第一个线程打印A,第二个线程打印B,第三个线程打印C……循环10次。 思路:三个线程对应三个Condition,三个Condition共享一个Lock,一个线程轮流状态state。线程拿到锁之后,通过state进行判断,如果轮到当前线程打印,则执行打印、更改state状态以及通过下一个线程对应的Condition唤醒下一个线程;如果没有轮到当前线程打印,则通过当前线程对应
2017-12-07 16:23:19 3234
原创 三个线程轮流执行顺序打印ABC(一):使用Semaphore实现
需求:有三个线程轮流执行,第一个线程打印A,第二个线程打印B,第三个线程打印C……循环10次。思路:三个线程对应三个Semaphore,三个Semaphore维护一个Permit。当前线程通过对应的Semaphore获取Permit,执行打印,并通过下一个线程对应的Semaphore释放Permit。类似于Permit在当前的线程对应的Semaphore中,传递到了下一个线程对应的Semaphore
2017-12-07 15:18:46 4997 2
《Effective Java Third Edition》高清完整版
2018-02-04
《Paxos到Zookeeper——分布式一致性原理与实践》高清完整版
2017-12-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人