1.JUC基础:
http://www.goldendoc.org/2011/05/juc/
2.Java并发编程J.U.C之锁的获取与释放
http://www.goldendoc.org/2011/06/lock_acquire_release/
3.Java并发编程J.U.C之Condition
http://goldendoc.iteye.com/blog/1096763
4.锁
1)非阻塞算法-ReentrantLock代码剖析之ReentrantLock.lock
http://www.iteye.com/topic/623398
5.Java 多线程与并发编程专题http://www.ibm.com/developerworks/cn/java/j-concurrent/
2)violate
volatile相当于synchronized的弱实现,也就是说volatile实现了类似synchronized的语义,却又没有锁机制。volatile并不能保证线程安全的,也就是说volatile字段的操作不是原子性的,volatile变量只能保证可见性(一个线程修改后其它线程能够理解看到此变化后的结果)
应用volatile变量的三个原则:
(1)写入变量不依赖此变量的值,或者只有一个线程修改此变量
(2)变量的状态不需要与其它变量共同参与不变约束
(3)访问变量不需要加锁
3)Condition
wait 和 notify。那么Condition的优势是支持多路等待,就是我可以定义多个Condition,每个condition控制线程的一条执行通路。传统方式只能是一路等待。
http://wangpengfei360.iteye.com/blog/1423273
5.java线程学习:
http://hi.baidu.com/kevindoudou/blog/item/cfcf880f98c5be2f6059f3a2.html
http://hi.baidu.com/kevindoudou/blog/item/d6cca1f01d09c6c67931aaae.html
http://hi.baidu.com/kevindoudou/blog/item/dd79883d020333eb3c6d977a.html
http://hi.baidu.com/kevindoudou/blog/item/0249a2cb39769e1abe09e6de.html
http://hi.baidu.com/kevindoudou/blog/item/167e25032f75ba8dd43f7cde.html
6.threadPoolExecutor:
http://dongxuan.iteye.com/blog/901689
http://blog.csdn.net/robage/article/details/1620691
线程池:
自建线程池例子:http://apps.hi.baidu.com/share/detail/32246373,待实践
ThreadPoolExecutor运转机制详解
http://blog.csdn.net/cutesource/article/details/6061229
7.java线程安全
总结的非常好:
http://www.iteye.com/topic/806990
http://www.iteye.com/topic/808550
8.CountDownLatch
在多线程程序设计中,经常会遇到一个线程等待一个或多个线程的场景,遇到这样的场景应该如何解决?
如果是一个线程等待一个线程,则可以通过await()和notify()来实现;
如果是一个线程等待多个线程,则就可以使用CountDownLatch和CyclicBarrier来实现比较好的控制。
CountDownLatch使得使用CountDownLatch.await()的线程(当前线程)阻塞直到所有其它拥有CountDownLatch的线程执行完毕(countDown()结果为0)
实例:http://iamzhongyong.iteye.com/blog/1439310
说明:
L28
//等待开始信号信号 ,在L9 s.countDown()未执行前(计数器变为0),线程都会阻塞在此
startSingal.await();
一旦s.countDown执行完,计数器变为0后,L9后的代码和L28后的代码无序执行
两个顺序:
1)信号开始(i am the judge ,now ,i start the singal),所有的线程才会“start to executer”,在此之前,6个thread
都在准备状态(当然,有的并未做好准备,所以信号开始了,有的还没执行L26)
2)所有线程执行完后(L11 e.await()控制),最终主线程执行最后"all is over"
http://iamzhongyong.iteye.com/blog/1458349
9.探索java并发编程
http://www.iteye.com/topic/730241
java并发学习
http://lavasoft.blog.51cto.com/62575/115112
分享到:
相关推荐
JAVA并发编程体系梳理脑图
读书笔记:Java 并发编程知识梳理以及常见处理模式 features and patterns
"Java并发思维导图" 这句话表明了一个中心主题,即Java并发编程的相关概念和知识。以下是对这句话的扩充: Java并发编程是Java编程中的一个重要领域,它涉及到多个线程之间的协作和竞争。在Java中,并发编程可以...
以脑图的方式,结构非常清晰的整理并发编程,多线程相关用到的知识清单。
《Java并发编程实战》是Java并发编程领域的一本经典图书,涵盖了Java中多线程编程的诸多高级概念和实践技巧。该书不仅介绍了并发编程的基本原理,还包括了各种并发工具的使用方法、常见的并发问题及其解决方案、以及...
JUC并发编程知识点梳理思维导图
通过上述内容的梳理,可以看出《Java虚拟机并发编程》这本书不仅深入浅出地讲解了Java虚拟机上的并发编程原理与技术,还覆盖了多种现代并发模型和技术栈,是一本非常全面且实用的参考书。对于希望深入了解并掌握Java...
### Java并发编程实践知识点梳理 #### 一、进程与线程基本概念 ##### 1.1 进程与线程 - **进程**: 进程是操作系统中的一个实体,它代表了一个正在运行的程序实例。每个进程都有独立的内存空间,并且拥有自己的...
对java并发知识的完整梳理,可以通过该文档了解到并发整个知识体系。
"Java并发思维导图" 这句话表明了一个中心主题,即Java并发编程的相关概念和知识。以下是对这句话的扩充: Java并发编程是Java编程中的一个重要领域,它涉及到多个线程之间的协作和竞争。在Java中,并发编程可以...
并发编程解决的核心问题 分工(如何高效地拆解任务并分配给线程)Fork/Join 框架 同步(指的是线程之间如何协作)CountDownLatch 互斥(保证同一时刻只允许一个线程访问共享资源)可重入锁 如何学习 跳出来,看全景...
Java并发编程是Java开发中的重要领域,涉及到多线程、同步机制、线程池等多个核心概念,对于提高程序性能和系统资源利用率具有关键作用。在面试或日常开发中,掌握这些知识点至关重要。以下是对Java并发编程主要知识...
本资料“JAVA核心面试知识梳理大全”涵盖了广泛的Java相关技术,包括基础、并发编程、源码分析、微服务、分布式系统、数据库操作、算法以及设计模式等多个方面。 首先,让我们深入了解一下JVM(Java虚拟机),它是...
编程工具 eclipse myeclipse idea vi VS webstorm sublime text 版本控制 svn git 项目管理 maven Nexus Jenkins 工作软件 反编译软件 office系列 下载器 adobe系列 记录软件 思维导图 ...
### Java网络编程 3rd 版本知识点梳理 #### 一、概述 《Java网络编程 3rd》是一本深入探讨Java在网络编程领域应用的经典著作。本书内容全面且深入,覆盖了从基本概念到高级技术的方方面面,对于希望在Java网络编程...
并发编程笔记中的知识点涵盖了保护性暂停模式(Guarded Suspension Design Pattern)的定义、实现与分析,以及在Java中如何通过GuardedObject对象来实现多线程间的...这些知识对于理解和掌握Java并发编程具有重要意义。
### Java学习入门资料知识点梳理 #### 一、Java语言历史与发展 - **起源与早期发展** - **前身**:Oak(1990年),由James Gosling等人在Sun Microsystems开发。 - **Green项目**:Sun Microsystems于1990年开始...
在并发和多线程方面,你需要了解并发编程基础,如线程池、锁机制、并发容器以及Java并发工具类(JUC)。数据结构和算法是程序员的基本功,包括字符串、数组、链表、二叉树、堆栈队列、哈希表,以及查找、排序、贪心...
【中信java培训资料------第一部分】是一份针对Java编程语言的初期学习资料,涵盖了从基础知识到实际应用的多个方面。这份资料旨在帮助初学者建立起坚实的Java编程基础,并逐步熟悉其核心概念和技术。 在【听课笔记...