20240428-并发编程特性-原子性(二)

使用synchronized锁

package com.ysf;public class Tst02AtomicSync {private static int count = 0;public static void increment() {synchronized (Tst02AtomicSync.class) {count++;}try {Thread.sleep(10L);} catch (InterruptedException e) {e.printStackTrace();}}public static void main(String[] args) throws InterruptedException {Thread t1 = new Thread(() -> {for (int i = 0; i < 100; i++) {increment();}}, "plus-1");Thread t2 = new Thread(() -> {for (int i = 0; i < 100; i++) {increment();}}, "plus-2");t1.start();t2.start();t1.join();t2.join();System.out.println(count);}
}
 public static void increment();descriptor: ()Vflags: ACC_PUBLIC, ACC_STATICCode:stack=2, locals=2, args_size=00: ldc 2: dup3: astore_04: monitorenter                      // 进入了锁5: getstatic                         // 从主内存取值8: iconst_19: iadd                              // ++10: putstatic     #3                  // 往主内存放值13: aload_014: monitorexit
  • synchronized 破坏了多线程操作临界资源的特性,保证同一时间下,只有一个线程可以获取到临界资源进行操作

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

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

相关文章

(二十一)C++自制植物大战僵尸游戏僵尸游戏关卡结束数据处理

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/8UFMs 文件位置 代码实现的文件在Class\Scenes\GameScene文件夹中,如下图所示。 GameEndLayer.h class GSGameEndLayer :public LayerColor { public:CREATE_FUNC(GSGameEndLayer);void successfullEntry();void brea…

必应bing广告推广开户时间需要多久?

企业选择合适的平台进行广告投放成为了企业获取竞争优势的关键一步&#xff0c;必应Bing作为全球第二大搜索引擎&#xff0c;凭借其庞大的用户基础和精准的广告定位能力&#xff0c;成为了众多企业海外及国内市场推广的优选渠道。云衔科技以专业、高效的服务&#xff0c;成为企…

MacOS - 打开 App 无法验证开发者解决方案

一、设置安全性与隐私偏好设置 1、点击苹果菜单图标&#xff0c;选择系统偏好设置。 2、点击安全性与隐私。 3、在通用选项卡中&#xff0c;确保已启用允许从以下位置下载的应用程序选项&#xff0c;并选择任何来源。 4、如果已经选中任何来源&#xff0c;则尝试切换到App …

JVM合集【持续更新】

Java虚拟机&#xff08;JVM&#xff09;&#xff1a; 是Java程序运行的环境&#xff0c;它负责解释执行 Java 字节码&#xff08;Bytecode&#xff09;&#xff0c;并提供了内存管理、垃圾回收等功能。JVM 是 Java 程序在不同平台上实现跨平台的关键。JVM 可以独立于 JDK 存在&…

【QEMU系统分析之启动篇(十一)】

系列文章目录 第十一章 QEMU系统仿真的加速器初始化分析 文章目录 系列文章目录第十一章 QEMU系统仿真的加速器初始化分析 前言一、QEMU是什么&#xff1f;二、QEMU系统仿真的启动分析1.系统仿真的初始化代码2.主循环数据初始化configure_accelerators()phase_advance(PHASE_A…

科技感十足特效源码

源码介绍 科技感十足特效源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面 源码截图 源码下载 科技感十足特效源码

Linux:冯诺依曼体系结构、操作系统、初识进程

文章目录 1.冯诺依曼体系结构总线与数据传输通路为什么有内存这个部分计算机存储结构 2.操作系统(Operator System)2.1 概念2.2 设计OS的目的2.3 理解“管理”先描述再组织 2.4 用户使用系统调用和库函数&#xff08;lib&#xff09;概念 总结 3.初识进程3.1 基本事实与引入3.2…

外贸常用邮件模板-客户投诉要如何处理?

外贸业务人员在与国外客户长期合作的过程当中&#xff0c;很难完全避免所有业务环节都万无一失&#xff0c;在整个订单的开发执行和成交售后过程当中&#xff0c;一旦出现某些问题导致客户投诉&#xff0c;将会在很大程度上影响我们和客户之间的关系以及未来的长期合作。 因此…

如何编写一个高性能的Web服务器

编写一个高性能的Web服务器需要考虑多个方面&#xff0c;包括架构设计、并发处理、资源优化、安全性等。以下是一些关键步骤和策略&#xff0c;帮助你编写一个高性能的Web服务器&#xff1a; 选择合适的编程语言和技术栈&#xff1a; 选择一个适合Web开发的编程语言&#xff0c…

ZYNQ之嵌入式开发05——串口中断、定时器中断、QSPI和SD卡读写测试实验

文章目录 UART串口中断实验定时器中断实验PS-XADC实验QSPI Flash读写测试SD卡读写文本文档 UART串口中断实验 UART控制器是一个全双工异步收发器&#xff0c;支持可编程的波特率和IO信号格式&#xff0c;具有独立的TX和RX数据路径&#xff0c;每个路径有一个64字节的FIFO&…

设计模式学习笔记 - 开源实战五(中):如何利用职责链与代理模式实现Mybatis Plugin

概述 上篇文章对 Mybatis 框架做了简单的背景介绍&#xff0c;并通过对比各种 ORM 框架&#xff0c;学习了代码的易用性、性能、灵活性之间的关系。一般来讲&#xff0c;框架提供的高级功能越多&#xff0c;那性能损耗就越大&#xff1b;框架使用起来越简单&#xff0c;那灵活…

59岁郑浩南罕见与索爆女儿合体,曾自曝婚变暗示妻子出轨人财两空

59岁的郑浩南&#xff0c;拍过不少脍炙人口的电影&#xff0c;尤其是在《古惑仔》中饰演奸角司徒浩南&#xff0c;近作有《黑社会》的「加钱哥」&#xff0c;虽然将近「登六」&#xff0c;却保养得宣&#xff0c;操出一身健硕肌肉。 跟前妻鲍爱玲离婚后&#xff0c;郑浩南独自在…

即插即用Mamba模块全新突破!无缝集成,无痛涨点

Mamba入局图像复原了&#xff01;基于Mamba的图像复原基准模型MambaIR性能超越SwinIR&#xff0c;达成新SOTA&#xff01; MambaIR是一种引入通道注意力和局部增强的即插即用Mamba模块。这类高效、创新的模块在写论文时可以帮助我们简化模型的构建过程&#xff0c;通过将这些模…

Android 11 bindService 流程分析

我们可以使用bindService来跨进程通信&#xff0c;其使用方法如下 Intent intent new Intent("xxx"); intent.setPackage("xxx"); boolean result bindService(intent,new ServiceConn(),BIND_AUTO_CREATE);private class ServiceConn implements Servi…

使用lua时一个愚蠢的错误

之前看luaL_openlibs()&#xff0c;感觉直接调打开库的函数好像也没差别&#xff0c;所以将 LUALIB_API void luaL_openlibs (lua_State *L) {const luaL_Reg *lib lualibs;for (; lib->func; lib) {lua_pushcfunction(L, lib->func);lua_pushstring(L, lib->name);…

学习100个Unity Shader (15) ---透明+双面渲染

文章目录 效果shader理解参考 效果 shader Shader "Example/AlphaBlendBothSided" {Properties{_Color ("Main Tint", Color) (1, 1, 1, 1)_MainTex ("Texture", 2D) "white" {}_AlphaScale ("Alpha Scale", Range(0, 1)…

leetcode多个测试用例之间相互影响导致提交失败

背景 在做一道easy题&#xff0c;二叉树的中序遍历&#xff0c;我提交的代码如下 from typing import (Optional,List )# Definition for a binary tree node. class TreeNode:def __init__(self, val0, leftNone, rightNone):self.val valself.left leftself.right right…

无脑入单向无头链表的实现| ArrayList和LinkedList的区别

1. ArrayList的缺陷 上节课已经熟悉了ArrayList的使用&#xff0c;并且进行了简单模拟实现。通过源码知道&#xff0c;ArrayList底层使用数组来存储元素。 由于其底层是一段连续空间&#xff0c;当 在 ArrayList 任意位置插入或者删除元素时&#xff0c;就需要将后序元素整体往…

掼蛋入门口诀

1、有王打单张&#xff0c;无王打一夯 2、想使坏&#xff0c;三不带 3、情况不明&#xff0c;对子先行 4、两个小单张&#xff0c;不打不健康 5、顺子打到头&#xff0c;对手没想头 6、双贡出单张&#xff0c;头游响当当 7、逢五出两张&#xff0c;逢六出三张 8、炸五不炸四&am…

pytest测试基础

assert 验证关键字 需要pahton版本大于3.6&#xff0c;因为有个工具pip3;因为做了映射&#xff0c;所以下面命令pip3即pip pip install -U pytest -U参数可选&#xff0c;是如果已安装可更新。 如果上述demo变化 通过验证代码&#xff0c;测试环境没问题。…