多线程
阿宇万岁
学无止境
展开
-
并发控制的方法
一、volatile使用volatile标识变量,将迫使所有线程均读写主内存中的对应变量,从而使得volatile变量在多线程间可见。二、同步关键字synchronized它是最常用的同步方法之一,简洁明了,代码可读性和维护性好。jdk6中,性能也有很大 的改进。为了有效地控制线程间的协作,需要配合使用synchronized以及notify()和wait()等方法。三、Ree原创 2015-10-19 14:56:13 · 2519 阅读 · 0 评论 -
wait(),notify(),notifyAll()用来操作线程为什么定义在Object类中
a、这些方法用于同步中b、使用这些方法时必须要标识所属的同步的锁c、锁可以是任意对象,所以任意对象调用的方法一定是定义在Object类中原创 2015-10-19 15:46:10 · 2017 阅读 · 0 评论 -
JDK并发数据结构
一、并发List1、Collections.synchronizedList(List list);2、CopyOnWriteArrayList 望文生义,当对象进行写操作时,复制该对象;若进行读操作,则直接返回结果,操作过程不需要同步。 核心思想:减少锁竞争。从而提高在高并发时的读取性能,但是它却在一定程度上牺牲了写性能。适用场合:读多写少的高并发场合。二原创 2015-10-19 15:15:48 · 385 阅读 · 0 评论 -
死锁的必要条件及如何处理死锁
死锁的必要条件1.互斥条件:一个资源每次只能被一个进程使用2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放3.不剥夺条件:进程已获得的资源,在未使用完之前,不能强行剥夺4.循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系如何处理死锁只要打破死锁必要条件中的任意一个,就能够解决死锁问题。原创 2015-10-20 08:59:11 · 473 阅读 · 0 评论