
并发编程
一个瘦子的梦想
我只是想出去走走
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
DelayQueue使用
使用延迟队列的元素必须实现Delayed接口public class Task implements Delayed { /** * 到期时间,单位是秒 */ private final long timeOut; /** * 问题对象 */ private final Question question; /**原创 2017-05-26 14:47:11 · 915 阅读 · 0 评论 -
笑谈java并发编程六之CountDownLatch
正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatch的概念是一个常见的面试题,所以一定要确保你很好的理解了它。在这篇文章中,我将会涉及到在Java并发编 程中跟CountDownLatch相关的以下几点:目录CountDownLatch是什么?CountDow转载 2017-06-16 11:07:56 · 216 阅读 · 0 评论 -
笑谈java并发编程六之AtomicMarkableReference和AtomicStampedReference介绍
在前面我介绍了AtomicInteger和AtomicLong的操作,但是在这两个类在CAS操作的时候会遇到ABA问题,可能大家会疑问什么是ABA问题呢,请待我细细道来:ABA问题:简单讲就是多线程环境,2次读写中一个线程修改A->B,然后又B->A,另一个线程看到的值未改变,又继续修改成自己的期望值。当然我们如果不关心过程,只关心结果,那么这个就是无所谓的ABA问题。为了解决ABA问题,伟大的j原创 2017-05-27 15:21:12 · 5958 阅读 · 2 评论 -
笑谈java并发编程五之AtomicLong*介绍
关于AtomicLong,AtomicLongArray,AtomicLongFieldUpdater我在这就不多做介绍了,这些和AtomicInteger*都是类似的,只是AtomicLong*操作的是long类型数据,AtomicInteger操作的是int类型数据,如果要了解AtomicLong*的相关知识,可以参考前面的AtomicInteger*的博客,或者可以自己查看java源代码哦!原创 2017-05-27 14:34:34 · 355 阅读 · 0 评论 -
笑谈java并发编程四之AtomicIntegerFieldUpdater介绍
AtomicInteger/AtomicLong/AtomicBoolean/AtomicReference是关于对变量的原子更新AtomicIntegerArray/AtomicLongArray/AtomicReferenceArray是关于对数组的原子更新AtomicIntegerFieldUpdater/AtomicLongFieldUpdater/AtomicReferenceFiel原创 2017-05-27 14:27:12 · 3450 阅读 · 0 评论 -
乐观锁和悲观锁的区别
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上原创 2017-05-27 13:44:31 · 241 阅读 · 0 评论 -
笑谈java并发编程三之AtomicIntegerArray介绍
我又来了,今天我写一下AtomicIntegerArray,因为我对并发编程不甚了解,所以想借此机会掌握一下并发编程的精髓,同时呢,希望能帮到有需要的技术猿们,虽然起初简单点,但是冰冻三尺非一日之寒,我相信以后的博客会越来越精彩,一起努力哦!AtomicIntegerArray:可以用原子方式更新其元素的 int 数组废话不多说了,直接上代码,相信我们程序猿都更喜欢看代码说话吧!我用三种方式来原创 2017-05-27 10:57:55 · 590 阅读 · 0 评论 -
笑谈java并发编程二之AtomicInteger介绍
AtomicInteger的使用,重点是原子性,解决并发编程下的不一致问题,因为咱们都是程序猿,喜欢看代码,所以我就直接上代码说明问题了,还望各位小猿们支持:实现一个计数器功能,下面用三种方式实现:第一种,用一般的方式实现:public class IntegerIncrement { private static Integer count=0; public static I原创 2017-05-26 18:02:22 · 457 阅读 · 2 评论 -
笑谈java并发编程一之AtomicBoolean介绍
Java的java.util.concurrent.atomic这个包下提供了很多的原子性操作的api,可供在多线程中保证操作的原子性,不会发生线程不安全的操作实现某个时间段只能有一个工作人员进行工作的实例,线程不安全代码如下:public class BarWorker implements Runnable { //设置某段时间内只能有一个工作人员进行工作,其他的只能放弃工作的机会原创 2017-05-26 17:01:23 · 3034 阅读 · 1 评论 -
笑谈java并发编程七之ExecutorService
ExecutorService中submit和execute的区别在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于新的启动、调度、管理线程的一大堆API了。在Java5以后,通过Executor来启动线程比用Thread的start()更好。在新特征中,可以很容易控制线程的启动、执行和关闭过程,还可以很容易使用线程池的特性。 一、创建任务 任务就是一个实现了Runnable接口原创 2017-06-16 11:52:43 · 274 阅读 · 0 评论