java多线程发展历程

java多线程发展历程

Sun公司在1995年年初发布了Java语言。

Sun在1996年年初发布了JDK1.0,包含java.io、 java.util、java.NET、java.awt和java.applet

确立了Java最基础的线程模型------抢占式。两种常见的进程/线程调度方式,即抢占式和协作式

线程间的协作通信采用简单粗暴的stop/resume/suspend这样的方法。

线程模型中最核心的两个类Thread和ThreadUsage这样的类。

Sun在1997年2月18日发布了JDK1.1。

1998年12月,Sun发布了Java历史上最重要的JDK版本:JDK1.2。

在这个版本中,Java试图用Swing修正在AWT中犯的错误,例如使用了太多的同步。

正式废除了三个方法:stop()、suspend()和resume(),使用wait()、notify() 和 sleep()。

引入线程变量ThreadLocal类。

2002年,Sun发布了JDK历史上最成熟的版本:JDK1.4

JDK在原有标准IO的基础上,提供了一组多路复用IO的解决方案NIO,相较于面向流的传统方式,这种面向块的访问方式会丢失一些简易性和灵活性。

(通过统一的轮询线程检测,每当有数据到达,触发监听事件,将事件分发出去,只有在对资源争夺剧烈的高并发场景下,才能见到NIO的明显优势)

2004年10月,Sun发布了万众期待的JDK1.5。Sun将JDK1.5改名为Java SE5.0

JSR 133和JSR 166的正式发布。

JSR 133重新明确了Java内存模型,JSR 133指定的先行发生(Happens-before)使得执行指令的顺序变得灵活

(在这之前,常见的内存模型包括连续一致性内存模型和先行发生模型。)

通过对synchronized、volatile和final这几个语义被增强的关键字的使用,可以做到数据一致性。

JSR 166的贡献就是引入了java.util.concurrent这个包。新增最右边一列

一些框架与方法

Executors线程池框架 ,用来创建各种线程池。newFixedThreadPool newCachedThreadPool 、newSingleThreadExecutor ScheduledExecutorService 等线程池

Callable接口和Futrue ;

并发工具类Semaphore与Exchanger;

Semaphore 可以在多个线程并发时指定同时执行线程的个数;

Exchanger 可以在多线程并发时设置等待,等待另一线程运行到指定位置,并且交换数据。

ReentrantLock、ReentrantReadWriteLock 、Condition Lock实现lock接口 可以自主的对锁实现更精细的操作

使用Condition Lock时可以创建多个分支对象,让线程在不同的分支上等待,并且可以唤醒指定分支上的线程

 2006年12月,Sun公司发布了JDK1.6(也被称为Java EE 6)。

对锁做了一些优化,锁自旋、锁消除、锁合并、轻量级锁、所偏向等。

CyclicBarrier类用于流程控制,对多个线程的控制,保证多个任务在并行执行都完成的情况下,多个线程再统一执行下一步操作

CountDownLatch(使用倒数计数的方式),对单个线程,即多个线程全部完成后,由一个线程去执行下一步操作。

2009年4月20日,Oracle收购Sun公司。

2011年7月28日,Oracle公司发布了 Java SE 7。

完善了并发流程控制的功能,比如fork-join框架。

Phaser这个类;NIO2的新开放特性

20

14年3月18日,Oracle公司发布了Java SE8。

LongAdder和AtomicLong使用了原子操作来提高性能

CompletableFuture实现CompletionStage接口,是Java 8中对Future的增强版。

StampedLock是ReadWriteLock的一个改进,偏向于写线程的改进。(StampedLock认为读不应阻塞写)

2017年9月22日,Oracle公司发布了Java SE 9。

改善锁争用机制

 2018年3月21日,发布JDK10

 2018年9月25日,发布JDK11

2019年3月19日,发布JDK12

2019年9月17日, 发布JDK13

 

 

2019年9月17日, 发布JDK13

参考博客https://blog.csdn.net/man_8211/article/details/72885018

                 https://blog.csdn.net/qq_24329685/article/details/42522179

                  https://blog.csdn.net/ni_hao_fan/article/details/100533828

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值