Java的多线程研究(四)
2013-10-23 23:26
197 查看
1、在方法前加上synchronized:是表示当前线程在执行此方法的时候,锁定当前对象this.(注意,并不是其他线程不能访问this的整个属性,是不能访问表示sychronized的代码块)
2、在Java语言中,引入了对象互斥锁的概念,保证共享数据操作的完整性。每个对象都对应于一个可称为“互斥锁”的概念,这个标记保证在任一时刻,只能有一个线程访问该对象。
3、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
4、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。
5、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。
6、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。
2、在Java语言中,引入了对象互斥锁的概念,保证共享数据操作的完整性。每个对象都对应于一个可称为“互斥锁”的概念,这个标记保证在任一时刻,只能有一个线程访问该对象。
3、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
4、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。
5、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。
6、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。
相关文章推荐
- java之多线程研究(一)
- java多线程研究(六)保持各线程间的变量独立
- Java多线程研究05-ThreadPoolExecutor中workQueue、threadFactory和handle
- Java多线程研究06-带返回值的线程定义接口Callable以及Future,FutureTask的使用
- Java多线程研究(八)使用Exchange在多个线程间交换数据
- java的多线程研究(二)
- Java的多线程研究(三)
- Java并发编程深入研究 -- 第一部分(Java基本的多线程支持)提纲
- Java多线程技术研究(一)-多线程的创建及常见名词
- JAVA多线程研究(五)
- Android多线程研究(8)——Java中的原子性理解
- Java多线程研究03-线程的基本操作(notify,notifyAll,interrupt,join,sleep)
- Java多线程研究04-线程池的使用(ThreadPoolExecutor详解)
- Android多线程研究(8)——Java中的原子性理解
- Java语言深入:关于多线程程序模型研究
- Java多线程之interrupt()的深度研究
- java 多线程 中断线程interrupt 研究
- JAVA--多线程中notify()造成的死锁原因的研究与使用
- Android多线程研究(7)——Java5中的线程并发库
- Java语言多线程程序模型研究