java同步方法

news2024/12/22 14:28:13

观看此文 首先 你要了解 java的同步锁

如果不了解 可以观看我的文章
java 同步锁synchronized 解决线程共享数据重复操作问题
那么 从下图 我们可以看到
在这里插入图片描述
逻辑代码上被绑了一个同步锁

但这个其实大可以写成一个函数 看起来会美观便捷很多

同步方法的格式如下
修饰符 synchronized 方法名


public class customException implements Runnable {
    private int tickets = 100;

    public void run () {
        while (true){
            work();
        }
    }
    public synchronized void work () {
        if(tickets > 0) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+"正在出售第"+tickets+"张票");
            tickets--;
        }
    }
}

这里我们定义了work 为一个同步方法 让他去执行同步锁内的方法

不过要记住

同步锁都需要一个对象来做锁定 而 同步方法 所选择的 是this

所以 当你要把另一个同步锁和同步方法一起执行时

就要
synchronized (this)

去锁这个this 这样才能和同步方法一起生效

当然 如果你都是同步方法也就不需要考虑这个问题了

当然 有时我们需要用静态的方法 那么静态的方法也可以同步的

静态同步方法 格式如下
修饰符 static synchronized void 方法名()

但你会发现 同步静态方法 锁的不是this 如果你想和静态同步方法一起走锁定

那就
synchronized (类名.class);

锁定静态 要用 当前类的类名.class做对象

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/59588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git switch 命令详解

1. 前言 2. switch 创建分支 3. switch 切换分支 1. 前言 checkout 命令具有 分支的管理 和 文件的恢复 两个核心功能,功能较多、不够准确。在 git 2.23 版本中新增了 switch 和 restore命令,用于替代 checkout 命令,进而分化 checkout 命…

(附源码)springboot大学生竞赛管理平台 毕业设计

题 目 springboot大学生竞赛管理平台 目 录 摘要 1 1 绪论 1 1.1选题意义 1 1.2国内外研究现状 1 1.3系统开发技术的特色 4 1.4论文结构与章节安排 4 2 大学生竞赛管理平台分析 5 2.1 可行性分析 5 2.2 系统流程分析 6 2.2.1数据增加流程 7 2.3.2数据修改流程 7 2.3.3数据删…

java面向对象----封装 构造器

目录 封装和隐藏 为什么需要封装? 信息的封装和隐藏 四种访问权限修饰符 构造器(构造方法) 构造器的特征 语法格式: 构造器重载 构造器重载举例 属性赋值过程 JavaBean UML类图 关键字—this this是什么? 使用this,…

计算机网络笔记2 物理层

计算机网络系列笔记目录👇 计算机网络笔记6 应用层计算机网络笔记5 运输层计算机网络笔记4 网络层计算机网络笔记3 数据链路层计算机网络笔记2 物理层计算机网络笔记1 概述 本文目录文章前言 💗一、物理层概述😊二、物理层的传输媒体&#x…

Spring源码该如何阅读?十年架构师带来的Spring源码解析千万不要错过!

写在前面 最近学习了一句话,感觉自己的世界瞬间明朗,不再那么紧张焦虑恐慌,同样推荐给大家,希望我们都终有所得。 “如果一个人不是发自内心地想要做一件事情,那么,他是无法改变自己的人生的。” 同样这句…

4. 死信队列

二八佳人体似酥,腰间仗剑斩愚夫。虽然不见人头落,暗里教君骨髓枯。 死信 概念 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理 解,一般来说,producer 将…

「Redis」05 Jedis操作Redis

笔记整理自【尚硅谷】Redis 6 入门到精通 超详细 教程 Redis——Jedis操作Redis 即通过 Java 操作 Redis。 1. Jedis基本操作 Ⅰ. 测试连接 连接Redis注意事项 禁用Linux的防火墙:Linux(CentOS7)里执行命令:systemctl stop/disab…

我的周刊(第068期)

我的信息周刊,记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。🎯 项目osquery[1]像操作 SQL 一样操作你的电脑&#xff0c…

康复训练的未来:VR和元宇宙如何帮助患者康复

欢迎来到Hubbleverse 🌍 关注我们 关注宇宙新鲜事 📌 预计阅读时长:7分钟 本文仅代表作者个人观点,不代表平台意见,不构成投资建议。 一位有平衡问题的患者站在波速球上,同时在两只潇洒的企鹅之间击打着…

第十六章 品质保证:发布覆盖率测试报告

代码覆盖率才是评价一个项目品质的标准。在挑选一个项目的时候,有经验的使用者都会根据代码覆盖率来确定代码的可靠性。 虽然自动化测试工具可以自动验证代码的正确性,但是如果只有部分代码经过了测试,或者只是简单地跑通了代码,…

BlockingQueue二

接着上篇BlockingQueue没讲完的 LinkedTransferQueue LinkedTransferQueue是一个由链表结构组成的无界阻塞队列,相对于其它阻塞队列,LinkedBlockingQueue可以算是LinkedBlockingQueue与SynhronoousQueue结合,LinkedtransferQueue是一种无界…

Unity学习笔记--详细介绍CacheServer、部署方法、以及在Unity中的位置

目录前言CacheServer是什么?解决了什么问题?其他知识点在哪里找到Cache Server?怎么部署CacheServer?Unity什么时候需要生成内部文件?CacheServer缓存的是什么?随着越来越多的资源被导入和存储,…

实战-COVID-19-KSH(html+ python +django +爬虫 +pyecharts 实时疫情动态)内附MySQL详细安装配置教程

GitHub代码 Windows10 python3.7 一、MySQL配置 1.官网下载地址 2.配置初始化文件my.ini 解压后在根目录下创建my.ini文件(建立.txt-修改扩展名为.int即可) 打开my.ini文件,输入以下内容(注意需要改动2处)&#x…

求一个网页设计作业——个人博客(HTML+CSS)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

9.Springboot整合Security很全

1.什么是Security SpringSecurity是基于Spring AOP和Servlet过滤器的安全框架。 它提供全面的安全性解决方案,同时在Web 请求级和方法调用级处理身份确认和授权。 2.Spring Security核心功能? (1)认证(你是谁&…

薪资25k,从华为外包测试“跳”入字节,说说我转行做测试的这5年...

转行测试5年了 当时因为家里催促就业,在其中一个室友的内推下进入了一家英语教培机构,前期上班和工资都还算满意,甚至觉得自己找到了一份很稳定的工作了,可是好景不长,“双减政策”的到来,让公司的经济遭受…

Linux进程间通讯技术

Linux进程间通讯 文章目录Linux进程间通讯1.进程通讯基本认知1.1 进程通讯的概念1.2 进程通讯的目的1.3 进程通讯的本质1.4 进程通讯的分类2.管道技术基本认知2.1 管道的概念2.2 为什么需要管道2.3 管道的四个特点2.4 管道的四种情况2.5 管道的大小获取2.6 命名管道与匿名管道的…

MyBatis-Plus条件构造器[常用的模糊查询、排序查询、逻辑查询和指定字段查询案例]

系列文章目录 Mybatis-Plus知识点[MyBatisMyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客 Mybatis-PlusSpringBoot结合运用_心态还需努力呀的博客-CSDN博客MyBaits-Plus中TableField和TableId用法_心态还需努力呀的博客-CSDN博客 MyBatis-Plus中的更新操作&#x…

2.2 反相放大器、高输入电阻反相放大器、反相高压放大器

笔者电子信息专业硕士毕业,获得过多次电子设计大赛、大学生智能车、数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究。对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验&a…

【cocos源码学习】解决cocos2d-x-4.0 Android Demo构建遇到的问题

环境 硬件:macbook pro 四核Intel Core i7系统:macOS Big Sur 11.4.2、 xcode Version 13.1 、cmake 3.20.5软件:iterm2 Build 3.4.8、zsh 5.8、Android Studio Dolphin | 2021.3.1cocos2d-x v4 : 官方下载压缩包 http://cocos2d…