Java并发编程---对象锁的同步和异步 た 入场券 2022-06-03 08:56 122阅读 0赞 **1.概念** **1.1 同步:synchronized** 同步的概念就是共享,如果不是共享的资源,就没有必要进行同步 **1.2 异步:asynchronized** 异步的概念就是独立,相互之间不受到任何制约.就好像我们学习http请求的时候,在页面发起的Ajax请求,我们还可以继续操作或浏览页面的内容,二者之间没有任何关系 **同步的目的就是为了线程安全,其实对于线程安全来说,需要满足两个特性:** 原子性(同步) 可见性 **2.代码示例** package com.thread.objectLock; /** * 对象锁的同步和异步问题 * @author lhy * @time 2017.12.22 */ public class MyObject { //有锁.同步方法 public synchronized void method1(){ try { System.out.println(Thread.currentThread().getName()); Thread.sleep(4000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //无锁,异步方法 public void method2(){ System.out.println(Thread.currentThread().getName()); } /** * 分析: * t1线程先持有Object对象的Lock锁,t2线程可以以异步的方式调用对象中的非synchronized修饰的方法 * t1线程先持有Object对象的Lock锁,t2线程如果在这个时候调用对象中的同步(synchronized)方法则需等待,也就是同步 * * 同步与异步交互,没有互相影响.同时出现 * 注意:如果数据是同步的或者都是异步的,要加一样的锁,保证数据的一致性 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub final MyObject mo = new MyObject(); Thread t1 = new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub mo.method1(); } },"t1"); Thread t2 = new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub mo.method2(); } },"t2"); t1.start(); t2.start(); } } **3.代码分析** t1线程先持有Object对象的Lock锁,t2线程如果在这个时候调用对象中的同步(synchronized)方法则需等待 t1线程先持有Object对象的Lock锁,t2线程可以以异步的方式调用对象中的非synchronized修饰的方法
相关 Java并发编程中的锁对象和同步块案例解析 在Java并发编程中,锁(Lock)是实现线程同步的工具。而同步块则是使用锁进行代码控制的一种结构。 1. 锁对象: - `synchronized`关键字:它定义一个同步方 偏执的太偏执、/ 2024年09月20日 19:24/ 0 赞/ 1 阅读
相关 Java并发编程:锁和同步原语示例 在Java中,锁是一种同步原语,用于控制对共享资源的访问。下面我们将通过两个简单但常见的示例来理解锁的使用。 1. **线程安全的类**: ```java public c 落日映苍穹つ/ 2024年09月14日 22:30/ 0 赞/ 15 阅读
相关 Java并发编程——理解锁和同步块 在Java的并发编程中,锁和同步块是实现线程间互斥的重要手段。 1. 锁(Lock): - Java提供了`java.util.concurrent.locks.Loc 曾经终败给现在/ 2024年09月12日 00:24/ 0 赞/ 13 阅读
相关 synchronized对象锁的同步和异步问题 先上代码: public class MyObject { public synchronized void method1(){ 朴灿烈づ我的快乐病毒、/ 2022年07月15日 05:03/ 0 赞/ 188 阅读
相关 1.3 对象锁的同步和异步 同步:synchronized 同步的概念就是共享,我们要牢牢记住“共享”这两个字,如果不是共享的资源,就没有必要进行同步。 异步:asynchronized 悠悠/ 2022年06月14日 06:53/ 0 赞/ 128 阅读
相关 Java并发编程---对象锁的同步和异步 1.概念 1.1 同步:synchronized 同步的概念就是共享,如果不是共享的资源,就没有必要进行同步 1.2 异步:asynchronized 异步的概念就是独 た 入场券/ 2022年06月03日 08:56/ 0 赞/ 123 阅读
相关 对象锁的同步与异步 Synchronize 同步 如果,不是共享的资源 没有必要进行同步 Asynchronize 异步 相互之间,不受到任何制约 比如 http在 不念不忘少年蓝@/ 2022年05月15日 01:46/ 0 赞/ 148 阅读
相关 【并发编程】synchronized 对象锁和类锁 前言 Github:[https://github.com/yihonglei/jdk-source-code-reading][https_github.com_yih 蔚落/ 2022年03月20日 07:30/ 0 赞/ 379 阅读
相关 Java并发编程中的重要概念1_同步和异步 同步(Synchronous) VS 异步(Asynchronous) 1.同步 指的是发送一个请求,需要等待返回,然后才能发送下一个请求。 2.异步 指的是发 我会带着你远行/ 2021年09月28日 09:20/ 0 赞/ 215 阅读
还没有评论,来说两句吧...