1 / 37
文档名称:

java(并发编程)多线程入门到精通[张振华.jack].pdf

格式:pdf   大小:877KB   页数:37页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

java(并发编程)多线程入门到精通[张振华.jack].pdf

上传人:977562398 2018/1/19 文件大小:877 KB

下载得到文件列表

java(并发编程)多线程入门到精通[张振华.jack].pdf

相关文档

文档介绍

文档介绍:自我介绍
Java多线程从入门到精通
------Java并发编程详解

QQ:494460705
Mail:zhangzhenhua846@
2015年6月
10年Java开发
1
目录
I. JAVA-Thread概念
II. Thread的三种实现方法
III. 生命周期
IV. 安全和锁
V. Concurrent包(安全集合类、安全Queue)
VI. 线程阻塞机制
VII. 线程池详解(原理,实际使用)
VIII. 线程的监控,分析方法
IX. 扩展数据库连接池
2
概念
A. 什么是进程
A. 是资源分配的最小单位;(资源,包括各种表格、内存空间、磁盘空间)
B. 同一进程中的多条线程将共享该进程中的全部系统资源
B. 什么是线程
A. 线程只由相关堆栈(系统栈或用户栈)寄存器和线程控制表TCB组成。
寄存器可被用来存储线程内的局部变量
B. 线程是CPU调度的最小单位
C. 什么是并行和并发
A. 并行运行:总线程数<= CPU数量*核心数:
B. 并发运行:总线程数> CPU数量*核心数: (时间片轮转进程调度算法)
3
Thread的三种实现方法
4
线程的生命周期/常用方法
获得当前线程的副本:
Thread current = ();
例如多线程上传的文件的进度条可以使用
5
何为安全
什么是安全的?先问个问题
是不是不加锁就不是线程安全的,个人感觉只要你代码里面没有变量
互串,线程之间互不影响,例如server的设计方法;
非单例代码也是安全的,注意只有单例模式下才会有锁的问题
6

:synchronized(同一个对象锁下面的, synchronized 区域是互斥的)
二. 方法锁(默认是当前对象的锁)
三. 代码快锁(性能高于方法锁,可以指定哪个对象的锁)
: (需要手动关/开),注意自己的代码逻辑不要产生
死锁了
:volatile(线程在每次使用变量的时候,都会读取变量修改后的最的值)
六. 其实是有风险的,并行情况下不一定正确,有可能两个线程同时取到最后修改的值
: (AtomicBoolean, AtomicLong,
AtomicInteger等一些类库)
八. (如果查看源码的话,实现原理是volatile ,相对安全的,个人觉得不绝对)
7
问一个问题,请看以下下面的锁有用吗
8
这种锁是没有用的啊,因为synchronized的对象不一样
9
常用的Concurrent线程安全类库






实现原理和算法类似lock的
10