`
fantaxy025025
  • 浏览: 1309989 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Java中的几个不常用关键字_synchronized_总结

阅读更多

http://alex09.iteye.com/blog/560137

 

1.synchronized 关键字的作用域有二种:
1
)是某个对象实例内, synchronized aMethod(){} 可以防止多个线程同时访问这个对象的 synchronized 方法(如果一个对象有多个 synchronized 方法,只要一个线程访问了其中的一个 synchronized 方法,其它线程不能同时访问这个对象中任何一个 synchronized 方法)。这时,不同的对象实例的 synchronized 方法是不相干扰的。也就是说,其它线程照样可以同时访问相同类的另一个对象实例中的 synchronized 方法。
2
)是某个类的范围, synchronized static aStaticMethod{} 防止多个线程同时访问这个类中的 synchronized static 方法。它可以对类的所有对象实例起作用。

2.
除了方法前用 synchronized 关键字, synchronized 关键字还可以用于方法中的某个区块中,表示只对这个区块的资源实行互斥访问。用法是 : synchronized (this){/* 区块 */} ,它的作用域是当前对象。

3.synchronized
关键字是不能继承的,也就是说,基类的方法 synchronized f(){} 在继承类中并不自动是 synchronized f(){} ,而是变成了 f(){} 。继承类需要你显式的指定它的某个方法为 synchronized 方法。

分享到:
评论

相关推荐

    Java 多线程与并发(4-26)-关键字- synchronized详解.pdf

    例如,在 Java 6 中,synchronized 关键字的实现原理是偏斜锁,而在 Java 8 中,synchronized 关键字的实现原理是轻量级锁。 synchronized 关键字是 Java 多线程与并发中的重要工具,可以实现线程安全的数据共享和...

    详谈Java多线程的几个常用关键字

    今天,我们就来详细讨论Java多线程中几个常用的关键字。 1. 同步(synchronized) 同步是一种锁机制,用于保护共享资源的访问。简单来说,同步可以理解为共享的意思,如果资源不是共享的,就没必要进行同步。设置...

    Java并发编程:volatile关键字解析

    总结来说,`volatile`关键字是Java并发编程中一个非常重要的概念。它不仅解决了多线程环境下的可见性问题,还能够在一定程度上保证有序性。然而,它并不保证复合操作的原子性,因此在设计并发程序时,还需要根据具体...

    【ASP.NET编程知识】实例解析Java中的synchronized关键字与线程安全问题.docx

    在Java编程中,`synchronized`关键字是用来解决多线程环境下的线程安全问题的关键工具。线程安全意味着当多个线程访问同一段代码时,该代码能够正确地处理并发情况,不会出现数据不一致或者资源竞争的问题。本文将...

    java-ppt.rar_java .ppt_java ppt_java基础 ppt_java基础 ppt_ppt jav

    在Java基础部分,初学者会接触到以下几个关键知识点: 1. **Java环境搭建**:包括下载JDK(Java Development Kit),设置环境变量如JAVA_HOME, PATH, CLASSPATH,以及如何运行第一个Java程序——经典的"Hello, ...

    Java中volatile关键字的总结.docx

    Java中的`volatile`关键字是用于处理并发编程中线程间通信和可见性的重要工具。它是一种轻量级的同步机制,比`synchronized`锁更为高效,因为它不会导致线程上下文的切换和调度,减少了不必要的开销。然而,`...

    java_type_train.rar_java 多线程_java 打字 程序_train_线程

    学习Java多线程时,需要理解以下几个关键概念: 1. **线程状态**:Java线程有新建、可运行、运行、等待、阻塞和死亡等六种状态,理解这些状态及其转换对于调试和优化多线程程序至关重要。 2. **同步机制**:包括...

    JAVA-ATM.rar_Java 实现 自动 取款机 模拟 程序_atm java_java ATM_java 银行_自动提款

    在这个项目中,开发者通常会关注以下几个核心知识点: 1. **面向对象编程**:Java是一种面向对象的语言,ATM模拟程序会涉及到多个类的设计,例如ATM机类、银行卡类、账户类等。每个类都有其特定的属性(如账户余额...

    Java基础_java基础_Java面试总结_源码

    Java的基础主要包括以下几个方面: 1. **语法与数据类型**:Java有八种基本数据类型,包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔型(boolean)。此外,还有引用数据类型...

    Java关键字解析.pdf

    本文将深入解析几个关键的Java关键字及其用法。 首先,`instanceof`关键字用于判断一个对象是否属于某个类、接口或其子类/实现类。它的基本形式是`boolean result = obj instanceof Class`。需要注意的是,`obj`...

    java_copy.rar_ java_copy

    在Java编程中,学生通常会接触到以下几个关键知识点: 1. **基础语法**: 包括数据类型(如整型、浮点型、字符型和布尔型)、变量声明、常量定义、运算符、流程控制(如if语句、switch语句、for循环、while循环)...

    六个java源程序.rar_chat_chat java_简单计算器_简单计算器java_邮件 java

    从描述中我们可以提取出以下几个关键的知识点: 1. **Java简单计算器**:这通常涉及到基础的算术运算,如加、减、乘、除,以及可能的错误处理(例如除以零)。在Java中,可以使用`Scanner`类获取用户输入,通过`...

    JavaAPI.rar_java API_java api_中文api

    Java API分为几个主要部分,包括基础类库、集合框架、IO流、网络编程、多线程、异常处理、反射、数据库操作等。 1. **基础类库**:Java的基础类库提供了大量的基本功能,如字符串处理(String类)、数学运算(Math...

    java_roulette.rar_Roulette_java_摇奖模拟程序_模拟摇奖

    摇奖模拟程序可能涉及到以下几个关键部分: 1. **随机数生成**:摇奖的核心是生成随机数字,Java提供了Random类或者更高级的ThreadLocalRandom和SecureRandom类来生成随机数。开发者可能根据摇奖规则设定一个特定...

    java_kechengsheji_6.rar_java 课程设计_java课程设计

    在Java课程设计中,通常会涵盖以下几个核心知识点: 1. **基础语法**:学习Java的变量、数据类型、运算符、流程控制语句(如if、for、while)等,这是编写任何程序的基础。 2. **面向对象编程**:理解类、对象、...

    java-puzzlers-sampler_java_Joshua_

    理解`synchronized`关键字、volatile变量以及`java.util.concurrent`包中的工具类是必不可少的。 7. **null引用**:Java中的`null`引用是一个特殊值,表示没有对象引用。误用`null`可能导致`NullPointerException`...

    生产者消费者Java—synchronized 机制

    在这个生产者消费者项目中,主要涉及以下几个关键知识点: 1. **线程间通信**:生产者和消费者之间需要通过某种方式通信,以告知对方何时可以生产或消费。Java提供了`wait()`、`notify()`和`notifyAll()`方法来实现...

    Java入门123(二维码版)_java编程_

    15. **Java标准库**:掌握Java标准库中常用类的使用,如日期时间API、数学计算、网络编程等。 16. **Java 8及更高版本的新特性**:包括Lambda表达式、函数式接口、Stream API等,这些都是现代Java开发的重要组成...

    JAVA写的留言板原代码.rar_Java代码留言本_Java留言板_java 留言板_留言板_留言板 JAVA

    这个程序可能包括以下几个核心知识点: 1. **Java基础知识**:首先,我们需要理解Java编程语言的基础,如变量、数据类型、控制结构(if、for、while)、类和对象、方法等。这是构建任何Java程序的基础。 2. **...

    synchronized的几种示例

    在Java编程语言中,`synchronized`关键字是一个重要的并发控制机制,用于确保多线程环境下的数据一致性。本文将深入探讨`synchronized`的几种使用示例,包括方法加锁、代码块加锁(针对`this`和对象)以及静态方法...

Global site tag (gtag.js) - Google Analytics