一知半解的synchronied如何理解?

2026-04-11 06:590阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1675个文字,预计阅读时间需要7分钟。

一知半解的synchronied如何理解?

`synchronized`是Java的同步锁,用于确保同一时刻只有一个线程能访问某个资源。通过使用`synchronized`,可以保证当一个线程正在修改共享资源时,其他线程无法同时访问该资源,从而保证线程安全。

synchronized是什么

synchronized是java同步锁,同一时刻多个线程对同一资源进行修改时,能够保证同一时刻只有一个线程获取到资源并对其进行修改,因此保证了线程安全性。
synchronized可以修饰方法和代码块,底层实现的逻辑略有不同。

Object obj=new Object(); synchronized(obj){ //do soming }

编译后的代码为:

一知半解的synchronied如何理解?

... 10 astore_2 11 monitorenter 12 aload_2 13 monitorexit 14 goto 22 (+8) 17 astore_3 18 aload_2 19 monitorexit 20 aload_3 21 athrow 22 return

当代码执行到synchronize(obj)时,对应的字节码为monitorenter进行加锁操作,代码执行完后就是monitorexit进行锁的释放。

阅读全文

本文共计1675个文字,预计阅读时间需要7分钟。

一知半解的synchronied如何理解?

`synchronized`是Java的同步锁,用于确保同一时刻只有一个线程能访问某个资源。通过使用`synchronized`,可以保证当一个线程正在修改共享资源时,其他线程无法同时访问该资源,从而保证线程安全。

synchronized是什么

synchronized是java同步锁,同一时刻多个线程对同一资源进行修改时,能够保证同一时刻只有一个线程获取到资源并对其进行修改,因此保证了线程安全性。
synchronized可以修饰方法和代码块,底层实现的逻辑略有不同。

Object obj=new Object(); synchronized(obj){ //do soming }

编译后的代码为:

一知半解的synchronied如何理解?

... 10 astore_2 11 monitorenter 12 aload_2 13 monitorexit 14 goto 22 (+8) 17 astore_3 18 aload_2 19 monitorexit 20 aload_3 21 athrow 22 return

当代码执行到synchronize(obj)时,对应的字节码为monitorenter进行加锁操作,代码执行完后就是monitorexit进行锁的释放。

阅读全文