`
jsczxy2
  • 浏览: 1277108 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

java综合学习(三):线程同步Synchronized的各种用法

    博客分类:
  • java
阅读更多

被synchronized声明的方法被称为同步方法,被其修饰的代码块称为同步语句。无论是同步方法还是同步语句,只要声明为同步了,在同一时刻,同一个对象的同步XX是不可以被同时访问的,而不同对象之间的同步方法是互不干扰的。

 

1.同步方法

Public synchronized void change() {

//

              }

 

2.同步语句块

    Public void change() {

Synchronized(this) {

}

}
 

3.自定义同步锁

private byte[]  lock= new byte[0];

 

  Public void change() {

Synchronized(lock) {

}

}
 

自定义锁注意事项:

1必须是private,防止在类外部引用改变。

       2如果可能用到,重写get方法,返回对象的clone,而不是本身。

 

 

Synchronized除了可以作用于方法,代码块,还可以作用于静态方法,类,某个实例。但是都存在效率问题,一定要慎用。

Class Foo   {   

            public synchronizedstatic void methodAAA()// 同步的static 函数  

           {   

              //….  

            }  

         public void methodBBB()   {   

              synchronized(Foo.class)// class literal(类名称字面常量) 

          } 
}

这样修饰后代表的是:同一时刻,被修饰部分只有一个对象可以运行,因为它的声明是针对类的。
分享到:
评论

相关推荐

    java同步synchronized关键字用法示例

    Java中的`synchronized`关键字是多线程编程中的一个重要概念,用于控制并发访问共享资源时的同步机制。在Java中,当多个线程试图同时访问和修改同一块代码或数据时,可能会导致数据不一致的问题。为了解决这个问题,...

    java的线程同步机制synchronized关键字的理解_.docx

    Java 线程同步机制中 synchronized 关键字的理解 Java 的线程同步机制是为了解决多个线程共享同一片存储空间所带来的访问冲突问题。其中,synchronized 关键字是 Java 语言中解决这种冲突的重要机制。 ...

    java 线程同步 信号量控制同步

    Java 线程同步控制机制 线程同步是 Java 编程中的一种机制,用于控制多个线程之间的资源访问顺序,以避免线程之间的冲突和数据不一致。线程同步的目的就是避免线程“同步”执行,即让多个线程之间排队操作共享资源...

    java中synchronized用法

    "Java 中 synchronized 用法详解" Synchronized 是 Java 语言中用于解决多线程共享数据...synchronized 关键字是 Java 语言中解决多线程共享数据同步问题的重要工具,但需要正确地使用它,以免造成死锁和系统开销。

    Java多线程同步.pdf

    Java多线程同步是指在Java语言中,如何使用synchronized关键字和其他同步机制来确保多线程程序的正确执行。在Java语言中,synchronized关键字用于对方法或者代码块进行同步,但是仅仅使用synchronized关键字还不能...

    Java线程及同步(synchronized)样例代码

    通过具体的代码实现,我们将深入理解Java中的线程同步机制,并学习如何在实际编程中正确地使用这些机制。 #### 二、核心概念与原理 ##### 1. Java线程基础 Java中的线程是程序执行的基本单位,每个线程有自己的...

    java线程学习笔记

    在多线程环境中,资源共享是非常重要的,为了避免资源竞争和数据不一致的问题,可以使用 synchronized 关键字来实现线程同步。 引起线程阻塞挂起的原因: 1. Thread.sleep() 方法:线程睡眠一段时间,不会释放锁...

    基于Java synchronized同步锁实现线程交互.pdf

    "基于Java synchronized同步锁实现线程交互" Java多线程能够提高CPU利用...因此,在使用Java多线程的场景中,请充分理解Java线程各状态之间的关系及其切换,并使用synchronized、wait()和notify()方法实现线程交互。

    java+多线程+同步详解源代码学习

    Java多线程与同步是Java编程中的核心概念,它们在构建高效、响应迅速的应用程序时起着至关重要的作用。在大型系统开发中,多线程技术使得程序能够同时执行多个任务,提高系统的并发性,而同步机制则确保了在多线程...

    java里面synchronized用法.doc

    Java 中的 synchronized 用法详解 Java 中的 synchronized 关键字是用于解决多线程并发问题的重要工具之一。它可以被用于方法、代码块和变量上,以实现对共享资源的互斥访问控制。本文将对 Java 中的 synchronized ...

    java 多线程synchronized互斥锁demo

    "synchronized"关键字就是Java中实现线程同步的关键工具,它用于控制对共享资源的访问,防止出现数据不一致的情况。 标题中的"java 多线程synchronized互斥锁demo"指的是一个示例,展示了如何在多线程环境下使用`...

    java 多线程同步方法的实例

    Java提供了多种机制来实现线程同步,主要包括synchronized关键字、wait()、notify()和notifyAll()方法以及ReentrantLock等。 1. **synchronized关键字**:这是Java中最基本的线程同步方式。它可以用于修饰方法或...

    Java synchronized使用案例

    1. **方法同步**:在方法声明前加上`synchronized`,整个方法都会被锁定,任何时刻只有一个线程能执行该方法。 ```java public synchronized void method() { // 方法体 } ``` 2. **代码块同步**:锁定特定对象,...

    java线程同步详解

    总结一下,Java线程同步的关键点: 1. **线程同步是为了解决共享资源的并发访问问题,防止数据不一致和冲突。** 2. **同步意味着线程排队,依次访问共享资源,而不是同时访问。** 3. **只有共享变量(可变状态)才...

    Java多线程机制(讲述java里面与多线程有关的函数)

    9.4 线程的常用方法: - `start()`: 使线程从新建状态进入就绪状态,等待被调度执行。 - `run()`: 执行线程的具体任务,系统调用,程序员不应直接调用。 9.5 GUI线程: 在图形用户界面(GUI)中,通常有一个称为...

    操作系统实验 多线程同步与互斥 java编写 有界面

    操作系统实验是计算机科学教育中的重要组成部分,它帮助学生理解和掌握操作系统的基本原理,特别是多线程同步与互斥的概念。在Java编程环境下,这些概念可以通过实际的代码实现来深入理解。 多线程是现代操作系统中...

    Java多线程同步机制研究分析.pdf

    Java多线程同步机制有两种类型:synchronized方法和synchronized块。synchronized方法是将访问共享资源的方法标记为synchronized,然后该标记的方法来控制对类成员变量的访问。synchronized块是将程序的某段代码使用...

    java线程同步及通信

    Java线程同步与通信是多线程编程中的关键概念,用于解决并发访问共享资源时可能出现的数据不一致性和竞态条件问题。以下将详细介绍这两个主题,以及如何通过代码示例进行演示。 1. **线程同步**: 线程同步是确保...

Global site tag (gtag.js) - Google Analytics