synchronized关键字

分享一下如何使用labelimg制作自己的YOLO数据集 首先准备一下自己的下准备一个空文件夹用于保存标签文件,如下图所示。 阅读详情

代码1:

class X{
 private int x=100;
 
 public int getX(){
  return x;
 }
 
 public synchronized void changeX(int y){
  x=x-y;
  try{
   Thread.sleep(1000);
  }catch(Exception e){
   e.printStackTrace();
  }
  System.out.println(Thread.currentThread().getName()+":"+this.getX());
 }
 public  void changeY(){
  System.out.println("hello world");
 }
}
public class MyThreadTest1 implements Runnable{
 private X xxx=new X();
 
 public void run(){
  if(Thread.currentThread().getName().equals("t1")){
   xxx.changeX(30);
  }
  if(Thread.currentThread().getName().equals("t2")){
   xxx.changeY();
  }
 }
 
 public static void main(String[] args) {
  MyThreadTest1 myXXX=new MyThreadTest1();
  Thread t1=new Thread(myXXX,"t1");
  Thread t2=new Thread(myXXX,"t2");
  
  t1.start();
  t2.start();
  
 }

}
结果:

hello world
t1:70

代码2:

class X{
 private int x=100;
 
 public int getX(){
  return x;
 }
 
 public synchronized void changeX(int y){
  x=x-y;
  try{
   Thread.sleep(1000);
  }catch(Exception e){
   e.printStackTrace();
  }
  System.out.println(Thread.currentThread().getName()+":"+this.getX());
 }
 public synchronized void changeY(){  //唯一区别
  System.out.println("hello world");
 }
}
public class MyThreadTest1 implements Runnable{
 private X xxx=new X();
 
 public void run(){
  if(Thread.currentThread().getName().equals("t1")){
   xxx.changeX(30);
  }
  if(Thread.currentThread().getName().equals("t2")){
   xxx.changeY();
  }
 }
 
 public static void main(String[] args) {
  MyThreadTest1 myXXX=new MyThreadTest1();
  Thread t1=new Thread(myXXX,"t1");
  Thread t2=new Thread(myXXX,"t2");
  
  t1.start();
  t2.start();
  
 }

}
结果:

t1:70
hello world

 

通过上面的两个例子,一个线程访问一个有synchronizationd关键字的方法的对象后,另外的线程就不能访问这个对象的所有的有synchronized关键字的方法。但如果这个对象有一些不含synchronized关键字的方法,则别的线程仍可访问这些不含synchronized关键字的方法。否则只有等前面那个线程的synchronized方法结束,后面这个线程才能执行有synchronized的方法。

9 硬件工程师笔面试高频知识考点真题解析——运算放大器 运算放大器(运放)摘要 运放是一种高增益、差分输入的模拟集成电路,具有虚短(线性区输入电压相等)和虚断(输入电流为零)特性,支持负反馈(线性放大)和开环/正反馈(饱和区比较)两种工作模式。关键特性包括高输入阻抗、低输出阻抗,理想运放参数(如无限增益)与实际参数(如有限带宽)的差异。 选型要点: 信号特性:直流/低频信号关注失调电压(Vos)、温漂;高频信号侧重带宽(GBW)和压摆率(SR)。 电源条件:单/双电源供电、电压范围及功耗需求(如电池设备需低静态电流)。 精度与噪声:微弱信号需低噪声运放,高精度场 阅读详情

相关推荐

别再被无限debugger卡住了!Chrome DevTools实战绕过技巧(含Hook与文件替换)

本文详细介绍了如何通过Chrome DevTools绕过无限debugger封锁的实战技巧,包括Hook技术与文件替换方法。针对常见的定时器轰炸、循环陷阱和动态注入等反调试手段,提供了高效的解决方案,帮助开发者快速突破调试障碍,提升爬虫和逆向工程效率。

weixin_30326515的博客 243

Synchronized 关键字原理

众所周知synchronized关键字是解决并发问题常用解决方案,有以下四种使用方式: 修饰代码块,即同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象。 修饰方法,即同步方法,其作用的范围是整个方法,作用的对象是调...

钱立清的博客 6万+

Android14 有线网络静态IP配置:从固件烧录到系统默认设置

本文详细解析了在Android14系统中,如何通过修改系统框架层和设置应用,为设备预设有线网络静态IP地址,实现固件烧录后即具备指定网络配置的功能。文章深入探讨了从扩展SettingsProvider数据库字段、配置默认值,到在设置应用中读取和应用配置的完整流程,旨在解决工业平板、智能终端等设备在无DHCP网络环境中批量部署的痛点,提升开箱即用体验。

lake5的博客 921

synchronized 关键字详解

synchronized 关键字1. synchronized 关键字的三种使用方法1.1. 修饰实例方法2.2. 修饰静态方法3.3. 修饰代码块2. 双重检验锁方式实现单例模式3. 构造方法可以使用 synchronized 关键字修饰么?4. JDK1.6 之后的 synchronized 关键字底层做了哪些优化?5. synchronized 和 ReentrantLock 的区别6. synchronized 关键字与Lock的区别 synchronized 关键字解决的是多个线程之间访问资源的同

TanaStudy的博客 7388

深入解析luckyExcel处理xlsx与xls文件的实战技巧

本文深入解析了使用luckyExcel库在前端处理.xlsx与.xls文件的实战技巧。针对.xlsx文件,可直接调用API转换;对于老旧的.xls格式,则需结合SheetJS进行预处理。文章详细介绍了核心API的使用、两种格式的处理流程、数据提取方法以及性能优化建议,为开发在线Excel编辑应用提供了完整解决方案。

cherry的博客 818

Halcon与C#联合编程(一):使用S7协议实现机器视觉上位机与西门子PLC联动

本项目技术栈:C#基础,多线程,Halcon DirectShow,Halcon形状检测,Halcon QR码识别,西门子S7通讯协议,西门子PLC为核心的下位机及执行元件

虎鲸不是鱼 1万+

synchronized 关键字

synchronized 是 Java 的一个关键字,用于实现多个线程之间资源访问的同步性,可以保证被它修斯的方法或者代码块在任意时刻都只有一个线程执行。

好记性不如烂笔头 971

Aspose Java 25.10 版本深度破解:基于字节码修改的实战指南

本文提供了Aspose Java 25.10版本基于字节码修改的实战指南。详细介绍了如何通过Javassist工具逆向分析并修改Aspose Cells、Words、Slides及PDF组件的许可证验证逻辑,从而实现绕过限制,并完成最终的打包与功能验证。

stone的博客 1364

synchronized 关键字的底层原理

synchronized关键字实现了多个线程之间访问资源的同步性,保证了被它修饰的方法或代码块在任意时刻最多只有一个线程执行。 synchronized关键字是通过JVM底层实现的。 按使用位置分,同步语句块和同步方法实现线程安全的方式不同 synchronized关键字同步语句块 public class SynchronizedDemo { public void method() ...

Rosen's 615

【QGIS、OSM】利用python开源工具实现指定区域的交通分配

如果从osmgnms和grid2demand得到的node.csv,我们要修改path4gnms代码中的utils.py的四处设置。利用QGIS实现可视化,得到的link_performance.csv,参数有volume和VOC。改完这四处代码,就可以运行path4gnms中的tutorial.ipynb了。

weixin_40594084的博客 1279

华为OD机试双机位C卷-字符串解密(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【字符串解密】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 字符串解密。

qq_45776114的博客 735

synchronized 关键字底层原理

synchronized 关键字底层原理属于 JVM 层面。 ① synchronized 修饰同步语句块 public class SynchronizedDemo { public void method() { synchronized (this) { System.out.println("s...

happyJared 441

WiFi基本概念(六)(L-STF,L-LTF)

L-STF它由10个OFDM symbol(1,0,1,0,1,0,1,0,1,0)构成,每个symbol是0.8us,GI是0.2us,总计10us。Symbol的长度是正常长度的1/4,因此称为Short training field,主要用于快速进行信号检测,信号同步,自动增益控制,接收天线选择(Diversity Selection)。 由于symbol长度是正常的1/4,子载波的宽度是正常的4倍,能进行初略的信道估计,其使用了-24, -20, -16, -12, -8, -4, 4, 8, 1

reekyli的专栏 6864

Synchronized关键字

Synchronized关键字简介 synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。 另外,在Java早期版本中,synchronized属于重量级锁,效率低下,因为监视器锁(monitor)是依赖于底层的操作系统的Mutex Lock来实现的,Java的线程是映射到操作系统的原生线...

yang1519784522的博客 236

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java synchronized关键字_Java synchronized 关键字,你用的对吗?

for (int i = 0; i < 5; i++) {System.out.println(Thread.currentThread.getName + " " + i);}System.out.println("Completed printing Numbers for " + Thread.currentThread.getName);}代码中只是给方法添加了一个synchroni...

weixin_42397141的博客 109

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

synchronized关键字详解

Java内存模型规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存,线程的工作内存中保存了该线程中是用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存。也就是说,仅仅是发生在STW的时候,只有垃圾回收线程能够观测到它,在我们正常使用的过程中是不会发生锁降级的,只有在GC的时候才会降级。修饰的代码,在开始执行时会加锁,执行完成后会进行解锁。所以,在JDK1.6中出现对锁进行了很多的优化,进而出现轻量级锁,偏向锁,锁消除,适应性自旋锁,锁粗化。

努力分享一些干货 1035

Synchronized关键字详解

文章目录一、Synchronized的使用1.1对象锁1.2类锁二、Synchronized原理分析2.1加锁和释放锁的原理 引入背景 线程安全是并发编程中的重要关注点,应该注意到的是,造成线程安全问题的主要诱因有两点 一是存在共享数据(也称临界资源) 二是存在多条线程共同操作共享数据。 因此为了解决这个问题,我们可能需要这样一个方案,当存在多个线程操作共享数据时,需要保证同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后再进行,这种方式有个高尚的名称叫互斥锁,即能达到互斥访

H_xxxxd的博客 5424

Synchronized 关键字详解

synchronized 是 Java 中的一种同步机制,用于实现线程之间的互斥和同步。当一个线程需要访问一个对象的同步代码块时,如果这个同步代码块已经被另一个线程所占用,那么当前线程就会被阻塞,直到另一个线程执行完毕并释放锁。只有获取到锁的线程才能执行同步代码块。使用关键字修饰一个方法时,该方法被称为同步方法。当一个线程访问一个对象的同步方法时,其他线程将被阻塞,直到该线程执行完毕并释放锁。同步方法的锁对象是当前实例对象。使用关键字修饰一段代码时,称该代码块为同步代码块。

swadian2008的博客 791

Java 中的 synchronized 关键字详解

在 Java 中,`synchronized` 关键字是一个非常重要的同步机制,用于确保在多线程环境下,同一时刻只有一个线程可以执行某个方法或代码块。本文将详细介绍 `synchronized` 关键字的三种应用方式、其作用以及注意事项。

专注Java和MySQL领域知识分享 1784

synchronized关键字浅析

背景 在实际工程实践中,多线程并发执行场景十分常见。所谓线程安全性即是多线程并发执行场景中需要保证的基本要求,如果不能保证线程安全性,那么势必会在实际工程实践中产生错误数据、甚至严重且不易察觉的异常处理,导致最终结果的不确定性。对于临界资源,或者是必须串行操作的流程,势必需要保证多个线程中每次仅有一个线程持有或仅有一个线程进入。如何保证多个线程由并行转串行,去持有临界资源或进入必须串行操作的流程...

吾日三省吾身 1323
上一篇: SqlServer 数据库 10.9.12
下一篇: linux下定时执行计划任务
cz_study_java
博客等级 码龄16年 5粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值