随笔分类 -  Java并发编程

线程间协作的两种方式
摘要:在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就 阅读全文

posted @ 2019-08-24 11:43 情陌人灬已不在 阅读(391) 评论(0) 推荐(0) 编辑

Timer与TimerTask的真正原理&使用介绍
摘要:其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样: 这里直接实现一个TimerTask(当然,你可以实现多个TimerTask,多个TimerTask可以被一个Timer会被分配到多个Timer中被调度 阅读全文

posted @ 2019-08-24 11:33 情陌人灬已不在 阅读(532) 评论(0) 推荐(0) 编辑

Java并发编程:Callable、Future和FutureTask
摘要:一.Callable与Runnable 先说一下java.lang.Runnable吧,它是一个接口,在它里面只声明了一个run()方法: 由于run()方法返回值为void类型,所以在执行完任务之后无法返回任何结果。 Callable位于java.util.concurrent包下,它也是一个接口 阅读全文

posted @ 2019-08-18 22:48 情陌人灬已不在 阅读(134) 评论(0) 推荐(0) 编辑

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
摘要:一.CountDownLatch用法 CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。 CountDownLatch 阅读全文

posted @ 2019-08-18 22:17 情陌人灬已不在 阅读(121) 评论(0) 推荐(0) 编辑

并发容器之CopyOnWriteArrayList
摘要:Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现 阅读全文

posted @ 2019-08-18 18:41 情陌人灬已不在 阅读(148) 评论(0) 推荐(0) 编辑

并发容器之ConcurrentHashMap
摘要:JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都 串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。因此Java5.0开 始针对多线程并发访问设计,提供 阅读全文

posted @ 2019-08-18 18:37 情陌人灬已不在 阅读(205) 评论(0) 推荐(0) 编辑

ConcurrentModificationException异常原因和解决方法
摘要:一.ConcurrentModificationException异常出现的原因 先看下面这段代码: 运行结果: 从异常信息可以发现,异常出现在checkForComodification()方法中。 我们不忙看checkForComodification()方法的具体实现,我们先根据程序的代码一步 阅读全文

posted @ 2019-08-18 18:13 情陌人灬已不在 阅读(326) 评论(0) 推荐(0) 编辑

Java并发编程:同步容器
摘要:一.为什么会出现同步容器? 在Java的集合容器框架中,主要有四大类别:List、Set、Queue、Map。 List、Set、Queue接口分别继承了Collection接口,Map本身是一个接口。 注意Collection和Map是一个顶层接口,而List、Set、Queue则继承了Colle 阅读全文

posted @ 2019-08-18 16:41 情陌人灬已不在 阅读(154) 评论(0) 推荐(0) 编辑

彻底搞懂volatile关键字
摘要:对于volatile这个关键字,相信很多朋友都听说过,甚至使用过,这个关键字虽然字面上理解起来比较简单,但是要用好起来却不是一件容易的事。这篇文章将从多个方面来讲解volatile,让你对它更加理解。 计算机中为什么会出现线程不安全的问题 volatile既然是与线程安全有关的问题,那我们先来了解一 阅读全文

posted @ 2019-08-17 16:25 情陌人灬已不在 阅读(178) 评论(0) 推荐(0) 编辑

Java线程池总结
摘要:1. 关于ThreadPoolExecutor 为了更好地控制多线程,JDK提供了一套Executor框架,帮助开发人员有效的进行线程控制,其本质就是一个线程池。其中ThreadPoolExecutor是线程池中最核心的一个类,后面提到的四种线程池都是基于ThreadPoolExecutor实现的。 阅读全文

posted @ 2019-06-25 22:52 情陌人灬已不在 阅读(177) 评论(0) 推荐(0) 编辑

Java中的阻塞队列
摘要:1. 什么是阻塞队列 阻塞队列(BlockingQueue)是 Java 5 并发新特性中的内容,阻塞队列的接口是 java.util.concurrent.BlockingQueue,它提供了两个附加操作:当队列中为空时,从队列中获取元素的操作将被阻塞;当队列满时,向队列中添加元素的操作将被阻塞。 阅读全文

posted @ 2019-06-25 22:45 情陌人灬已不在 阅读(185) 评论(0) 推荐(0) 编辑

Java多线程之ThreadLocal
摘要:ThreadLocal简介 ThreadLocal是Java中的线程局部变量,用于存放线程的局部变量。 ThreadLocal为每个线程的中并发访问的数据提供一个副本,通过访问副本来运行业务,这样的结果是耗费了内存,但是确避免线程同步所带来性能消耗,也减少了线程并发控制的复杂度。 首先看一下Thre 阅读全文

posted @ 2019-06-25 22:34 情陌人灬已不在 阅读(190) 评论(0) 推荐(0) 编辑

互斥锁(Lock)
摘要:转载至:https://www.cnblogs.com/dolphin0520/p/3923167.html 一.synchronized的缺陷 synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢? 在上面一篇文章中,我们了解到如果一个代码 阅读全文

posted @ 2019-05-23 22:54 情陌人灬已不在 阅读(363) 评论(0) 推荐(0) 编辑

同步(synchronized)
摘要:转载至:https://www.cnblogs.com/dolphin0520/p/3923737.html 一.什么时候会出现线程安全问题? 在单线程中不会出现线程安全问题,而在多线程编程中,有可能会出现同时访问同一个资源的情况,这种资源可以是各种类型的的资源:一个变量、一个对象、一个文件、一个数 阅读全文

posted @ 2019-05-22 21:48 情陌人灬已不在 阅读(303) 评论(0) 推荐(0) 编辑

Thread类的使用
摘要:转载至:https://www.cnblogs.com/dolphin0520/p/3920357.html 一.线程的状态 在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解。 线程从创建到最终的消亡,要经历若干个状态。一般来 阅读全文

posted @ 2019-05-21 20:37 情陌人灬已不在 阅读(244) 评论(0) 推荐(0) 编辑

如何创建线程
摘要:转载至:https://www.cnblogs.com/dolphin0520/p/3913517.html 一.Java中关于应用程序和进程相关的概念 在Java中,一个应用程序对应着一个JVM实例(也有地方称为JVM进程),一般来说名字默认为java.exe或者javaw.exe(windows 阅读全文

posted @ 2019-05-21 17:20 情陌人灬已不在 阅读(216) 评论(0) 推荐(0) 编辑

进程和线程之由来
摘要:转载至:https://www.cnblogs.com/dolphin0520/p/3910667.html 一.操作系统中为什么会出现进程? 说起进程的由来,我们需要从操作系统的发展历史谈起。 也许在今天,我们无法想象在很多年以前计算机是什么样子。我们现在可以用计算机来做很多事情:办公、娱乐、上网 阅读全文

posted @ 2019-05-21 17:00 情陌人灬已不在 阅读(385) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示