《Java并发编程的艺术》笔记(1)-并发编程的挑战
来源:互联网 发布:阿里在线编程难么 编辑:程序博客网 时间:2024/06/06 03:21
一、上下文切换
- 含义
CPU通过给每个线程分配时间片来实现多线程,时间片一般是几十毫秒。当任务时间片用光后会切到下一个任务,但是,在切换前会保存上一个任务的状态,以便切换回这个任务的时候可以再加载这个任务。任务从保存状态到再加载的过程就是一次上下文的切换。 - 如何减少上下文切换
(1)无锁并发编程。如将数据合理分段,不同线程处理不同不同段数据。
(2)CAS算法。Java的Atomic包使用CAS算法,就不需要锁。
(3)避免创建不需要的线程。
(4)协程。
二、死锁
避免死锁的常见方法:
(1)避免一个线程同时获取多个锁。
(2)避免一个线程在锁内同时占用多个资源。
(3)尝试使用定时锁,trylock等。
(4)对于数据库锁,加锁和解锁必须在一个数据库连接里。
三、其他
(1)thread.join()
等待thread执行完毕后,在继续执行当前线程。
阅读全文
0 0
- 《Java并发编程的艺术》笔记(1)-并发编程的挑战
- 并发编程的艺术笔记-(第一章)并发编程的挑战
- Java并发编程的艺术-第一章<并发编程的挑战>
- java并发编程的艺术【一】并发编程的挑战
- Java并发编程的艺术-笔记1
- 《并发编程的艺术》学习笔记 第1章---并发编程的挑战
- Java并发编程的艺术(一)-----并发编程的挑战及解决方案
- Java并发编程的艺术--笔记
- Java并发编程的艺术笔记
- Java并发编程的艺术-笔记2
- Java并发编程(一):并发编程的挑战
- Java并发编程的艺术-第一章之并发编程的挑战
- 《Java并发编程的艺术》第一章——并发编程的挑战
- Java并发编程的艺术
- Java并发编程的艺术
- Java并发编程的艺术(上)
- 并发编程的挑战
- 1、并发编程的艺术
- HDU 5875 Function 2016亚洲区域赛大连网络赛
- java—类和对象
- EL表达式的使用
- <meta>标签
- HDU
- 《Java并发编程的艺术》笔记(1)-并发编程的挑战
- 转载:nginx 的location配置规则
- 使用HttpClient的GET方式下载数据
- 网页编程--DOM+HTML
- 上下div高度动态自适应--另类处理方案
- Java网络编程—(2)I/O输入输出流
- 蓝牙物联网【www.bluetooth-iot.com】在CSDN开设门户
- 库函数的使用:POJ1488-TEX Quotes(getline()的使用)
- QML属性和对象