java同步和互斥 : 共享数据的并发处理
2013-06-06 00:02
387 查看
http://www.mianwww.com/html/2011/10/10790.html
java同步和互斥 : 共享数据的并发处理
两个线程修改共享资源时会出现数据的不一致,为避免这种现象采用对访问的线程做限制的方法。利用每个对象都有一个monitor(锁标记),当线程拥有这个锁标记时才能访问这个资源,没有锁标记便进入锁池。
1.Synchronized修饰代码块
public void push(char c){
synchronized(this){
…
}
}
对括号内的对象加锁,只有拿到锁标记的对象才能执行该代码块
2.Synchronized修饰方法
public synchronized void push(char c) {
…
}
对当前对象的加锁,只有拿到锁标记的对象才能执行该方法
注:方法的Synchronized特性本身不会被继承,只能覆盖。
线程因为未拿到锁标记而发生阻塞进入锁池(lock pool)。每个对象都有自己的一个锁池的空间,用于放置等待运行的线程。由系统决定哪个线程拿到锁标记并运行。
java同步和互斥 : 共享数据的并发处理
两个线程修改共享资源时会出现数据的不一致,为避免这种现象采用对访问的线程做限制的方法。利用每个对象都有一个monitor(锁标记),当线程拥有这个锁标记时才能访问这个资源,没有锁标记便进入锁池。
1.Synchronized修饰代码块
public void push(char c){
synchronized(this){
…
}
}
对括号内的对象加锁,只有拿到锁标记的对象才能执行该代码块
2.Synchronized修饰方法
public synchronized void push(char c) {
…
}
对当前对象的加锁,只有拿到锁标记的对象才能执行该方法
注:方法的Synchronized特性本身不会被继承,只能覆盖。
线程因为未拿到锁标记而发生阻塞进入锁池(lock pool)。每个对象都有自己的一个锁池的空间,用于放置等待运行的线程。由系统决定哪个线程拿到锁标记并运行。
相关文章推荐
- java中的共享数据的并发处理(J2SE入门15)
- Java乐观锁悲观锁、synchronized,重入锁 (ReentrantLock)处理并发(互斥同步、非互斥同步)
- Java世界里的同步、协作、互斥、高并发
- java多线程处理导入数据拆分List集合,同步处理插入数据
- 【Java】线程并发、互斥与同步[转载]
- JAVA 并发编程-多个线程之间共享数据(六)
- Java如何处理多线程的数据同步问题
- Java并发原语——线程、互斥与同步
- Java多个线程之间处理共享数据的方式
- Java多个线程之间处理共享数据的方式
- Java高效并发之乐观锁悲观锁、(互斥同步、非互斥同步)
- Java 大型系统高并发大数据的处理方式
- java并发编程之:线程共享数据的方式
- Java多个线程之间处理共享数据的方式
- java 怎么处理多数据,高并发问题?
- 【Java多线程与并发库】7.多个线程之间共享数据的方式探讨
- java多线程与线程并发五:多个线程访问共享对象和数据的方式
- Java线程同步锁解决共享数据安全
- Java并发学习之十五——使用读写锁同步数据访问
- 【java并发】多个线程间共享数据