java多线程
文章平均质量分 77
空心不是鱼
从前我又瘦又小,人们叫我小白,经过几年的努力,人们称呼我为胖白。
展开
-
java多线程发展史
诞生Java的基因来自于1990年12月Sun公司的一个内部项目,目标设备正是家用电器,但是C++的可移植性和API的易用性都让程序员反感。旨在解决这样的问题,于是又了Java的前身Oak语言,但是知道1995年3月,它正式更名为Java,才算Java语言真正的诞生。JDK 1.01996年1月的JDK1.0版本,从一开始就确立了Java最基础的线程模型,并且,这样的线程模型再后续的修修补补中,并未原创 2017-06-06 16:51:51 · 1637 阅读 · 0 评论 -
JDK8对并发的新支持
LongAdder和AtomicLong类似的使用方式,但是性能比AtomicLong更好。LongAdder与AtomicLong都是使用了原子操作来提高性能。但是LongAdder在AtomicLong的基础上进行了热点分离,热点分离类似于有锁操作中的减小锁粒度,将一个锁分离成若干个锁来提高性能。在无锁中,也可以用类似的方式来增加CAS的成功率,从而提高性能。LongAdder原理图:Atom转载 2017-06-07 16:02:48 · 370 阅读 · 0 评论 -
JDK9新特性
继2014年3月份Java 8发布之后,Open JDK加快了开发速度, Java 9的发布已经提上日程。在原计划推迟后计划在2017年7月份发布Java 9,同时公布了JEP(JDK改进提议)中的前期列表。任职于Takipi 的Alex Zhitnitsky整理了Java 9中一些纳入JSR(Java规范提案)的新特性和大家一直期待但未确定的一些特性。这些特性有Jigsaw项目、新的智能编译工具、转载 2017-06-07 16:07:59 · 12005 阅读 · 0 评论 -
java多线程实现方式
java内部支持多线程,在JDK1.0的时候就确定了基础的线程模型,在其后的多个版本都是在此基础上面的优化,多线程的实现由多种方式,最常用的是实现runnable接口创建线程多线程 只有一个执行流程的程序被称为单线程程序,相对而言,拥有多个执行流程的程序,被称为多线程程序。Java程序运行原理Java使用Thread类代表线程,所有线程对象都是Thread类或者其子类的实例,new Thread(原创 2017-06-07 10:13:39 · 432 阅读 · 0 评论 -
线程的生命周期和状态转换
线程有5种状态:新建、就绪、运行、阻塞、死亡。每种状态都是可以相互转换的。下面的这个图非常重要!你如果看懂了这个图,那么对于多线程的理解将会更加深刻!1、新建状态(New):新创建了一个线程对象。 2、就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 3、运行状态(Runni原创 2017-06-07 16:01:00 · 1601 阅读 · 0 评论 -
synchronized三种使用方式
前言在多线程并发编程中Synchronized一直是元老级角色,大家都知道synchronized是重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,与lock相比性能相差并不是很大,还是比较建议同步的时候优先使用synchronized。三种使用方式修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁修饰静原创 2017-06-08 18:06:46 · 3813 阅读 · 0 评论