Java并发编程
文章平均质量分 81
福尔摩帅
我想写首诗
展开
-
JAVA多线程之volatile 与 synchronized 的比较
一,volatile关键字的可见性要想理解volatile关键字,得先了解下JAVA的内存模型,Java内存模型的抽象示意图如下:从图中可以看出:①每个线程都有一个自己的本地内存空间--线程栈空间???线程执行时,先把变量从主内存读取到线程自己的本地内存空间,然后再对该变量进行操作②对该变量操作完后,在某个时间再把变量刷新回主内存关于JAVA内存模型转载 2018-01-16 09:37:11 · 192 阅读 · 0 评论 -
Java并发:隐藏的线程死锁
许多程序员都熟悉Java线程死锁的概念。死锁就是两个线程一直相互等待。这种情况通常是由同步或者锁的访问(读或写)不当造成的。Found one Java-level deadlock:============================="pool-1-thread-2": waiting to lock monitor 0x0237ada4 (object 0x272200e8, a ja...转载 2018-04-13 14:47:19 · 535 阅读 · 0 评论 -
Java线程池种类、区别和适用场景
newCachedThreadPool:底层:返回ThreadPoolExecutor实例,corePoolSize为0;maximumPoolSize为Integer.MAX_VALUE;keepAliveTime为60L;unit为TimeUnit.SECONDS;workQueue为SynchronousQueue(同步队列)通俗:当有新任务到来,则插入到SynchronousQueue中,...转载 2018-03-02 16:50:45 · 9978 阅读 · 0 评论 -
浅淡对乐观锁与悲观锁理解
(一)乐观锁和悲观锁的概念乐观锁悲观锁的理解是乐观锁是一种思想即具体实现是,表中有一个版本字段,第一次读的时候,获取到这个字段。处理完业务逻辑开始更新的时候,需要再次查看该字段的值是否和第一次的一样。如果一样更新,反之拒绝。之所以叫乐观,因为这个模式没有从数据库加锁。乐观锁,就是一种乐观心态的锁,每次访问数据时并不锁定数据,期待数据并没作修改,如果数据没被修改则作具体的业务应用程序上使用乐观锁:百...原创 2018-02-22 09:43:52 · 2362 阅读 · 0 评论 -
Java线程池的正确打开方式
当前环境jdk == 1.8Executors 使用的隐患先来看一段代码,我们要创建一个固定线程池,假设固定线程数是4。代码如下:Executors是JAVA并发包中提供的,用来快速创建不同类型的线程池。是不是很简单,创建线程池只需一行代码。对于一些个人项目或临时性的项目,这样写确实没什么问题,而且开发速度很快。但在一些大型项目中,这种做法一般是禁止的。WHY???因为用Executors创建的线...转载 2018-02-18 21:25:30 · 6967 阅读 · 0 评论 -
浅析几种线程安全模型
多线程编程一直是老生常谈的问题,在Java中,随着JDK的逐渐发展,JDK提供给我们的并发模型也越来越多,本文摘取三例使用不同原理的模型,分析其大致原理。COW之CopyOnWriteArrayListcow是copy-on-write的简写,这种模型来源于linux系统fork命令,Java中一种使用cow模型来实现的并发类是CopyOnWriteArrayList。相比于Vector,它的读操...转载 2018-02-14 22:39:36 · 160 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们转载 2018-02-06 09:15:44 · 145 阅读 · 0 评论 -
Java并发编程:线程池的使用
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadPoolExecutor类中的方转载 2018-01-18 23:52:19 · 287 阅读 · 0 评论 -
Java中Synchronized的用法
原文:http://blog.csdn.net/luoweifu/article/details/46613015 作者:luoweifu 转载请标名出处《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念synchronized.转载 2018-01-09 15:16:54 · 149 阅读 · 0 评论 -
System.out.println( )对性能影响
在项目开发中,查看输出值,简单调试或许会用到System.out.println()方法。但是正式上线项目,切记不要闲来无事写几个System.out.println(),轻则会使性能受影响重则让服务器瘫痪。直接上代码 <textarea readonly="readonly" name="code" class="Java"> * Prints a String and ...原创 2018-04-13 19:48:43 · 9420 阅读 · 1 评论