Java多线程 要点分析

来源:互联网 发布:java能干嘛 编辑:程序博客网 时间:2024/06/05 04:35

Java提供的并发相关的包:

java.util.concurrent主要提供并发过程中可以用到的工具类

 

一些重点可以分状体理解

 

可以分析一下多线程条件下wait/notify/sleep之间相互协作的用法。

锁的理解 进程间对锁的竞争

通过例子理解synchronized关键字的使用:

§ 非静态方法使用synchronized修饰,相当于synchronized(this)

§ 静态方法使用synchronized修饰,相当于synchronized(Lock.class)

 

ThreadLocal的使用,重点关注如何避免内存泄露,以及使用ThreadLocal带来哪些好处解决了哪些问题?

NOI的引入,提供了多路复用IO的解决方法。只有在对资源争夺剧烈的高并发场景下,才能见到NIO的明显优势。

 

JSR 133重新明确了Java内存模型,事实上,在这之前,常见的内存模型包括连续一致性内存模型先行发生(Happens-before)模型

重点关注如何保证线程之间数据的一致性?synchronized、volatile和final。DCL(Double Check Lock)

 

JSR 166的贡献就是引入了java.util.concurrent这个包。

 

原子性 Lock-free算法

 

线程池的使用

 

相关问题:

1、synchronized与static synchronized 的区别

synchronized是对类的当前实例进行加锁

static synchronized是限制线程同时访问jvm中该类的所有实例同时访问对应的代码快。

2、synchronized和Lock机制有什么区别?

 

参考文档:

JAVA wait(),notify(),sleep详解

synchronized与static synchronized 的区别、synchronized在JVM底层的实现原理及Java多线程锁理解

四火的唠叨-Java多线程发展简史

四火的唠叨-java.util.concurrent并发包诸类概览

java中并发包简要分析01

0 0
原创粉丝点击