`
sunrise353
  • 浏览: 75729 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

再谈synchronized

    博客分类:
  • J2SE
 
阅读更多

再谈synchronized

 

a.    synchronized作用于方法,二种作用域情况:

 

1)  synchronized 作用于类的对象实例的方法

一个对象中有多个synchronized方法时,当线程1已经访问了这个对象中的任何一个synchronized的方法,线程2不能访问这个对象的任何一个synchronized方法了。但是如果线程2访问的是这个类的另外一个对象中的synchronized方法的话是没有关系的。

2)  synchronized 作用于类的方法

synchronized static aStaticMethod{}防止多个线程同时访问这个类中的synchronized static 方法。它可以对类的所有对象实例起作用。

 

b.    synchronized 作用于代码块

      synchronized(this){/*区块1*/}//它的作用域是当前对象;代码块在方法内,虽然这个方法不是synchronized,但是当线程1在访问这个块的时候,线程2就不能再访问这个对象中的其他的任何的synchronized方法和synchronized(this){/*区块1*/}的代码块。

       Object ob1=”resource1”;

       Object ob2=”resource2” ;

      

       synchronized(ob1){/*区块2*/}//作用域为ob1,可以理解为 区块2被称ob1lock锁住了。

       synchronized(ob2){/*区块3*/}//作用域为ob2,可以理解为 区块3被称ob2lock锁住了。

分享到:
评论

相关推荐

    Java SE实践教程 源代码 下载

    6.2.4 再谈synchronized 122 6.3 协调任务 124 6.3.1 线程池和Executor 124 6.3.2 Callable和Future 126 6.3.3 ScheduledExecutorService 127 6.4 线程安全的集合和同步器 128 6.4.1 阻塞队列 128 6.4.2 指定...

    Java SE实践教程 pdf格式电子书 下载(一) 更新

    6.2.4 再谈synchronized 122 6.3 协调任务 124 6.3.1 线程池和Executor 124 6.3.2 Callable和Future 126 6.3.3 ScheduledExecutorService 127 6.4 线程安全的集合和同步器 128 6.4.1 阻塞队列 128 6.4.2 指定...

    Java SE实践教程 pdf格式电子书 下载(四) 更新

    6.2.4 再谈synchronized 122 6.3 协调任务 124 6.3.1 线程池和Executor 124 6.3.2 Callable和Future 126 6.3.3 ScheduledExecutorService 127 6.4 线程安全的集合和同步器 128 6.4.1 阻塞队列 128 6.4.2 指定...

    浅谈synchronized方法对非synchronized方法的影响

    浅谈synchronized方法对非synchronized方法的影响 在Java中,synchronized关键字是用来实现线程同步的,它可以保证在多线程环境中,某个方法或代码块只能被一个线程访问。今天,我们来探讨synchronized方法对非...

    synchronized与static synchronized的区别

    大家在学习java多线程的时候肯定会遇到这个问题,而且在面试的时候也可能会谈到java多线程这一块的知识。今天我们就来看看这个东西~~~ synchronized 这个是对类实例进行加锁,可以简称为“实例锁”或者是“对象锁”...

    Java同步机制浅谈

    ### Java同步机制浅谈 #### synchronized关键字的作用及应用 在Java多线程环境中,`synchronized`关键字扮演着至关重要的角色。它可以帮助开发者确保多线程环境下的数据一致性,防止因并发访问导致的数据错误。本...

    浅谈Java多线程编程.pdf

    "浅谈Java多线程编程" 从标题和描述可以看出,这篇文章的主题是讨论Java多线程编程的相关知识点。 多线程编程的概念 Java语言的一个重要特点是支持多线程机制,这使得Java程序可以支持多程序并发执行,从而提高...

    Java分布式应用学习笔记06浅谈并发加锁机制分析

    ### Java分布式应用学习笔记06浅谈并发加锁机制分析 #### 1. 前言 在深入探讨Java中的并发加锁机制之前,我们有必要回顾一下多线程环境下的一些基本概念和技术。之前的多线程调度、并发调度以及线程加锁安全等内容...

    浅谈iOS中的锁的介绍及使用

    使用 `@synchronized` 关键字时,你需要提供一个对象作为锁的标识,确保只有当这个对象相同的锁被持有时,代码块才会被执行。在示例中,`@synchronized(cjobj)` 创建了一个基于 `cjobj` 对象的锁,两个并发的异步...

    谈一谈iOS单例模式

    - **线程安全(@synchronized)**:使用`synchronized`关键字确保在同一时间只有一个线程可以执行代码块,避免多线程环境下创建多个实例。例如: ```objc static MyClass *singleton = nil; + (MyClass *)...

    Java学习题答案

    《Java学习题》 <br>据说,如果你能独立完成(不用看资料,不借助调试)回答在60分以上,找个6000元以上的... 22 只要类中显式地定义一个,那么Java不会再为你定义一个默认的构造器 23 构造方法可以被继承。

    浅谈java多线程编程

    Java提供了多种同步机制,其中最常见的是`synchronized`关键字,用于防止多个线程同时访问同一代码段: 1. **实例方法同步**:锁定在实例对象上,一个实例的同步方法同一时间只能被一个线程执行。 2. **静态方法...

    谈面试时从写一个单例开始究竟能问多深及终极解决方案.docx

    从一个简单的单例模式实现开始,我们可以深入探讨`volatile`关键字、`synchronized`关键字以及`new`关键字的相关知识点,包括它们的作用、实现原理以及在Java虚拟机中的具体表现形式。此外,我们还提供了一种更为...

    浅谈Java并发编程之Lock锁和条件变量

    "浅谈Java并发编程之Lock锁和条件变量" Lock锁是Java并发编程中的一种重要机制,它提供了比synchronized更加广泛的锁定操作。Lock接口有三种实现类:ReentrantLock、ReetrantReadWriteLock.ReadLock和...

    谈一谈对JUC的理解Java系列2021.pdf

    这些工具类的设计理念是尽量避免使用传统的synchronized关键字,而是通过更轻量级的方式实现线程间的同步和协作,从而提高并发性能。 1. `volatile`关键字:`volatile`是Java中的一种轻量级同步机制,它能确保共享...

    深入浅出谈java修饰符共6页.pdf.zip

    然而,提供的压缩包文件"深入浅出谈java修饰符共6页.pdf.zip"似乎包含的是一个PDF文档,若要获取更多具体信息,需要解压并查看文档内容。在"赚钱项目"这个子文件中,可能涉及的是如何利用Java编程技能进行项目开发以...

    浅谈Java的多线程机制.pdf

    ### 浅谈Java的多线程机制 #### 一、引言 随着计算机技术的不断发展,编程模型变得越来越复杂和多样化。多线程编程模型作为目前计算机系统架构中的一个重要组成部分,其重要性日益凸显。特别是在X86架构的硬件成为...

    AtomicInteger 浅谈

    《AtomicInteger 浅谈》 在Java编程中,原子性操作是并发编程中非常关键的一环,它确保了在多线程环境下数据的正确性和一致性。AtomicInteger是Java并发包java.util.concurrent.atomic中的一个类,提供了对单个整型...

Global site tag (gtag.js) - Google Analytics