java多线程——线程安全同步机制同步代码块、同步机制

用多线程实现电影院三个窗口买票机制

①同步代码块方式实现

public class MyThread extends Thread{static int sum=0;//static Object object=new Object();@Overridepublic void run() {while(true){//同步代码块synchronized (MyThread.class){if(sum<100){try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}sum++;System.out.println(getName()+"正在售卖第"+sum+"张票");}else {break;}}}}
}//测试代码
MyThread myThread1=new MyThread();MyThread myThread2=new MyThread();MyThread myThread3=new MyThread();myThread1.setName("窗口1:");myThread2.setName("窗口2:");myThread3.setName("窗口3:");myThread1.start();myThread2.start();myThread3.start();

②同步方法

public class Myrun implements Runnable{int tacked=0;@Overridepublic void run() {while (true){if (maipiao()) break;}}private synchronized boolean maipiao() {if(tacked==100){return true;}else {try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}tacked++;System.out.println(Thread.currentThread().getName()+"正在售卖第"+tacked+"张电影票");}return false;}
}//测试代码
Myrun myrun1=new Myrun();Thread s1=new Thread(myrun1);Thread s2=new Thread(myrun1);Thread s3=new Thread(myrun1);s1.setName("窗口1:");s2.setName("窗口2:");s3.setName("窗口3:");s1.start();s2.start();s3.start();

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

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

相关文章

唯品会vip.item_get API:第三方开发者的商品信息获取利器

唯品会&#xff08;VIP.com&#xff09;是中国的一家知名折扣电商平台&#xff0c;提供大量品牌商品的打折销售。对于第三方开发者而言&#xff0c;唯品会提供的API接口可以帮助他们集成唯品会的数据和功能&#xff0c;从而开发出自己的应用或服务。 vip.item_get API是唯品会…

maven 打包命令

Maven是基于项目对象模型(POM project object model)&#xff0c;可以通过一小段描述信息&#xff08;配置&#xff09;来管理项目的构建&#xff0c;报告和文档的软件项目管理工具。 Maven的核心功能便是合理叙述项目间的依赖关系&#xff0c;通俗点讲&#xff0c;就是通过po…

Linux 基本组件与性能优化与根目录

目录 Linux基本组件 Linux性能优化 Linux常见根目录 Linux基本组件 内核&#xff1a;操作系统的核心&#xff0c;管理硬件资源和提供基本服务。 Shell&#xff1a; 用户与系统交互的命令行界面&#xff0c;例如 Bash 或 Zsh。 文件系统&#xff1a; 组织和存储数据的方式&…

Mysql的基本SQl语句

1.DDL 数据定义语言&#xff0c;开发 针对库表对象增删改create 创库创表drop 删库删表alter 修改库表属性 案例1&#xff1a;创建一个数据库&#xff0c;需求如下&#xff1a; 1&#xff09;库名为edu 2&#xff09;字符集为utf8 CREATE DATABASE edu DEFAULT CHARAC…

代码随想录刷题笔记-Day22

1. 修剪二叉搜索树 669. 修剪二叉搜索树https://leetcode.cn/problems/trim-a-binary-search-tree/ 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high]中。修剪树 不应该 改变保留…

opengles 顶点坐标变换常用的矩阵(九)

文章目录 前言一、opengles 常用的模型矩阵1. 单位矩阵2. 缩放矩阵3. 位移矩阵4. 旋转矩阵二、第三方矩阵数学库1. glm1.1 ubuntu 上安装 glm 库1.2 glm 使用实例1.2.1 生成一个沿Y轴旋转45度的4x4旋转矩阵, 代码实例如下1.2.2 生成一个将物体移到到Z轴正方向坐标为5处的4x4 vi…

万界星空科技商业开源MES

一、万界星空科技商业开源MES系统概述&#xff1a; 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、适合二开的开源MES。 1.万界星空开源MES制造执行系统的Java开源版本。 开源mes系统包括系统管理&#xff0c;车间基础数据管理&#xff0c;计…

深度学习500问——Chapter01:数学基础

文章目录 前言 1.1 向量和矩阵 1.1.1 标量、向量、矩阵、张量之间的联系 1.1.2 张量与矩阵的区别 1.1.3 矩阵和向量相乘结果 1.1.4 向量和矩阵的范数归纳 1.1.5 如何判断一个矩阵为正定 1.2 导数和偏导数 1.2.1 导数偏导计算 1.2.2 导数和偏导数有什么区别 1.3 特征值和特征向量…

什么是边缘案例测试?如何查找并确定优先级

何为边缘情况&#xff1f; 在极端条件下发生的情况被称为边缘情况&#xff0c;有时候也叫边界情况&#xff0c;在功能、回归、单元和性能测试中都会应用。如果质量保证团队知道某项功能的最大和最小负载&#xff0c;他们就能防止这些情况发生。当用户不按照程序的预期工作流程…

gma 2.0.6 (2024.02.21) 更新日志

安装 gma 2.0.6 pip install gma2.0.6网盘下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1P0nmZUPMJaPEmYgixoL2QQ?pwd1pc8 提取码&#xff1a;1pc8 注意&#xff1a;此版本没有Linux版&#xff01; 编译gma的Linux虚拟机没有时间修复&#xff0c;本期Linux版继…

Go Module常用命令

Go Module常用命令TOC Go Module常用命令 go mod init #初始化go.mod go mod tidy #更新依赖文件 go mod download #下载依赖文件 go mod vendor #将依赖转移至本地的vendor文件 go mod edit #手…

ChatGPT需要什么资源?

在ChatGPT走红之后&#xff0c;国内有很多的媒体和人一下子慌了神。特别是自媒体上&#xff0c;铺天盖地的都是说“为什么中国没有诞生ChatGPT”、“美国将要爆发一场新的技术革命”之类的文章。很多的一些研究机构和企业都宣称&#xff0c;我们马上就要推出自己的ChatGPT了。还…

@ 代码随想录算法训练营第8周(C语言)|Day59(动态规划)

代码随想录算法训练营第8周&#xff08;C语言&#xff09;|Day59&#xff08;动态规划&#xff09; Day59、动态规划&#xff08;包含题目 ● 583. 两个字符串的删除操作 ● 72. 编辑距离 &#xff09; 583. 两个字符串的删除操作 题目描述 给定两个单词 word1 和 word2&am…

Spring Cloud Gateway官方文档学习

文章目录 推荐写在前面一、熟悉Gateway基本概念与原理1、三大概念2、工作流程 二、基本使用路由断言的两种写法 三、路由断言工厂1、After路由断言工厂2、Before路由断言工厂3、Between路由断言工厂4、Cookie路由断言工厂5、Header路由断言工厂6、Host路由断言工厂7、Method路由…

如何远离原生家庭并与原生家庭相处

1、绝不主动联系。 2、任何辩理立即停止&#xff0c;即使你是对的。 3、绝不做任何取悦父母、感动父母的事。 4、只负责父母病了给他们送医院&#xff0c;得到应有的治疗。其他的和你无关。 5、遭遇道德绑架立即挂电话&#xff0c;立即离场&#xff0c;立即拉黑&#xff0c;绝不…

静态时序分析:SDC约束命令set_drive详解

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 目录 指定电阻值 指定端口列表 简单使用 指定上升、下降沿 指定最大最小、条件 写在最后 本章将讨论使用set_drive命令&#xff0c;它用于对输入端口的驱动能力建模。首先需要说明的…

XXXX系统等级保护定级报告

XXXX系统等级保护定级报告 *标红内容为样例文本&#xff0c;请根据实际填写替换,非重要系统一般级别为一级 一、信息系统描述 对系统功能、运维方式、部署方式进行描述。 二、XX系统安全保护等级确定 &#xff08;一&#xff09;业务信息安全保护等级的确定 1、业务信息描…

130 如何通过vs2017开发linux c++程序

使用VS2017开发linux下的应用程序&#xff08;C/C&#xff09;_vc_linux.exe vs2017-CSDN博客 参考上面这哥们的&#xff0c;写的很详细 前言 本文章记录如何使用VS2017进行linux应用程序的开发&#xff08;针对新手小白&#xff09;&#xff0c;VS2017能较为方便的通过SSH编辑…

基于回归支持向量机svr的确诊人数预测,基于lstm的确诊人数预测,基于bilstm的确诊人数预测,基于ga-lstm-svr的确诊人数预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于lstm的确诊人数预测,基于bilstm的确诊人数预测 完整代码: 基于svr的确诊人数预测,基于lstm的确诊人数预测,基于bilstm的确诊人数预测,基于ga-lstm-svr的确诊人数预资源-CSDN文库 https://download.csdn.net/download/ab…

python中name=‘main’的理解

1、__name__的理解 Python解释器在导入模块时&#xff0c;会将模块中没有缩进的代码全部顺序执行一遍&#xff08;模块就是一个独立的Python文件&#xff09;。开发人员通常会在模块下方增加一些测试代码&#xff0c;为了避免这些测试代码在模块被导入后执行&#xff0c;可以利…