首页 > 其他分享 >synchronized(锁){}锁对象块同步代码块

synchronized(锁){}锁对象块同步代码块

时间:2023-08-20 17:44:47浏览次数:33  
标签:同步 synchronized lock 代码 互斥 线程 方法

  1. 注意事项
  2. 得写在循环的里面不然永远都是一个循环
lock可以手动上锁接口 必须使用他的实现类 Reentrantlock来实现 waiting -------------------------------------- 非原子性操作 加锁有三种方式
  1. synchronized关键词加方法上()同步锁互斥锁非显示锁不公平锁 独占锁
  2. synchronized(Object对象取名lock){包裹代码}同步代码块同步锁互斥锁非显示锁不公平锁 独占锁
  3. reetranlock()可重入锁显示锁
synchronized关键词可以保证同步锁(互斥锁)
  1. 具有线程独占性同一时刻只能有一个线程占有该同步锁锁的是方法
  2. 缺点执行效率可能低下
  3. 判断如果没有共享变量的操作下不需要用
步骤
  1. 所有线程执行抢锁
  2. 抢到的线程执行原子性方法
  3. 执行完方法释放锁
reetranlock()可重入锁显示锁
  1. 同一个线程可以多次获取该锁
  2. tryLockNanos()以纳秒为单位加锁
  3. new对象调用lock方法
  4. 关锁用unlock方法
0
  1.  

标签:同步,synchronized,lock,代码,互斥,线程,方法
From: https://www.cnblogs.com/zhangseekchu/p/17644317.html

相关文章

  • TWCMS的SEO标题标签调用优化代码
    做SEO的朋友都有一个习惯,那就是用SEO标题,很多人不知道,其实TWCMS是支持的,只是很多人不知道,今天就给大家讲一下TWCMS标题SEO标签调用优化代码,网站title标签默认主题为<title>{$tw[titles]}</title>如果我们单独设置了某些分类、单页以及文章的SEO标题,要区分这些单独设置了的SEO......
  • TWCMS通过添加代码到模板实现PC和移动端双模板展示功能
    很多朋友都想用TWCMS程序制作带PC站和移动站的网站。却不知道如何下手,为了帮助大家解决这个问题,我们总结了一些经验供大家参考。需要把手机模版和PC模版都放在同一个目录调用。用户用电脑访问就调用电脑得模版,用手机就调用手机得模版,非常不错的,也不需要用两个网址、两个空间!只需......
  • 可扩展的三层代码设计
    可扩展的三层代码设计这次我们根据上面的图,来谈谈一个SOA服务的代码怎么分层才能做到维护起来如丝般顺滑,下面我们一层一层的说。SoaService层SOA层是对外暴露的API层,来表现一些服务能力,打个比方,一个商户服务,可以修改店铺的营业时间,修改营业状态,修改店铺属性等等,这些基础能......
  • vscode 工作区文件数目太多时,代码无法提示补全
    VScode工作区过大时Python插件失效,无法跳转-CSDN根据这篇文章的说法,是由于语言服务器要搜索源文件,文件数目太多时会消耗时间过多,此时表现为ctrl点击模块名/函数名无法跳转(都是白色的,不是彩色的)。打开vscode--输出--Python语言服务器可以看到详细的日志解决方法......
  • 基础入门-算法分析&传输加密&数据格式&密文存储&代码混淆&逆向保护
    基础入门-算法分析&传输加密&数据格式&密文存储&代码混淆&逆向保护基础入门-算法分析&传输加密&数据格式&密文存储&代码混淆&逆向保护传输数据-编码型&加密型等传输格式-常规&JSON&XML等密码存储-Web&系统&三方应用代码混淆-源代码加密&逆向保护加密:1.常见加密编码进制等算法解......
  • 想用低代码平台?不需要从零开始,AstroZero了解一下玩转低代码【玩转低代码】
    低代码,从零开始?对低代码的犹豫点?春风一夜万树开,有一阵,好似大家都在做中后台,都在研究或实现低代码平台。见面聊天在讨论,网上文章也在讲。但是我为什么对从零开始打了一个问号呢?按说我这种喜欢折腾的开发者,怎么也要搞一套。不止我,我的团队,曾有过搭建低代码平台的计划。当时计划集中一......
  • jeecg-Boot基于H2驱动的JDBC任意代码执行
    这几天的把人都给熬傻了,这个漏洞需要添加H2数据库依赖,jeecg自带的依赖没有什么可以利用的点,不知道有没有大师傅有其他想法漏洞描述JeecgBoot受影响版本中,由于jeecg-boot/jmreport/testConnectionApi接口未进行身份验证,并且未对dbUrl参数进行限制,当应用端存在H2数据库驱动依......
  • ubuntu与windows双系统时间同步
    windows认为,BIOS时间就是当地时间。所以windows会直接显示BIOS时间。ubuntu认为,BIOS时间应当是UTC时间(格林尼治标准时间)。所以ubuntu会将BIOS时间加8小时后再显示出来(中国,UTC+8)。解决方案是,在ubuntu终端中输入:sudotimedatectlset-local-rtc1这句话的作用是让ubuntu将系统......
  • python机器学习经典算法代码示例及思维导图(数学建模必备)
    最近几天学习了机器学习经典算法,通过此次学习入门了机器学习,并将经典算法的代码实现并记录下来,方便后续查找与使用。这次记录主要分为两部分:第一部分是机器学习思维导图,以框架的形式描述机器学习开发流程,并附有相关的具体python库,做索引使用;第二部分是相关算法的代码实现(其实就是......
  • Python足球小游戏代码
    基于Python pygame的足球游戏源代码,游戏可以双人玩,游戏入口程序为soccer.py。控制人物一方向键:wasd,射门键:r控制人物二,方向键:键盘方向键,射门键:k程序运行截图核心程序代码:soccer.py#-*-coding:utf-8-*-from__future__importunicode_literalsimportitertools,sys,ti......