初识线程的并发问题

Java多线程02:初识并发问题 什么是多线程的并发问题? 问题:多个线程操作同一个资源的情况下,线程不安全,数据紊乱。 代码示例: package com.he.demo02; //多个线程操作同一个对象 //内容:模仿多人抢票 //重写快捷键ctrl+o //捕获异常快捷键:ctrl+alt+t //问题:多个线程操作同一个资源的情况下,线程不安全,数据紊乱。 public class video06 implements Runnable{ //火车票数量 private int ticketNums = 10; 阅读详情
package com.bowen.demo01;

//多个线程同时操作同一个对象
//买火车票的例子

//发现问题:多个线程操作同一个资源的情况下,线程不安全,数据紊乱
public class TestThread4 implements Runnable{
    //票数
    private int ticketNums=10;

    @Override
    public void run() {
        while (true){
            if (ticketNums<=0){
                break;
            }
            //模拟延时
            try {
                Thread.sleep(200);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+"-->拿到了第" + ticketNums-- + "张票");
        }
    }

    public static void main(String[] args) {
        TestThread4 ticket = new TestThread4();

        new Thread(ticket,"小明").start();
        new Thread(ticket,"老师").start();
        new Thread(ticket,"黄牛").start();

    }
}

这里执行结果出现了一些紊乱
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
说到底,是由于多个线程操作同一个资源,由于线程不安全,引起了数据紊乱

Java模拟多线程实现抢票代码实例 主要介绍了Java模拟多线程实现抢票,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 立即下载

相关推荐

不只是烧录:深入理解英飞凌Aurix MCU的HSM安全模块与UDE Memtool解锁操作

本文深入探讨了英飞凌Aurix MCU的HSM安全模块设计与UDE Memtool解锁操作,揭示了硬件安全模块的架构、安全启动链机制及调试接口的安全特性。通过分析UDE Memtool的解锁逻辑和量产环境下的最佳实践,帮助工程师更好地应对MCU锁定问题,提升汽车电子和工业控制领域的安全烧录效率。

weixin_32770423的博客 300

并发问题:多线程抢火车票

当多个线程同时对一个资源进行访问的时候,就会出现以下问题: 执行结果: 可以看到,第9张票,第2张票,同时被多个人拿到 这与现实情况矛盾,所以在多线程同时访问同一个资源时,会出现问题,所以需要对应的解决办法:加上锁解决并发问题 执行结果: 这只是很简单的一个加锁的应用,此文章只是介绍多线程出现的问题,想知道更多解决方法,后会有期...

dayuiicghaid的博客 1097

Qt5.15.2安卓开发环境配置保姆级教程(含JDK8、SDK33、NDK21.4及Gradle国内镜像避坑指南)

本文提供Qt5.15.2安卓开发环境配置的完整教程,涵盖JDK8、SDK33、NDK21.4及Gradle国内镜像设置,帮助开发者快速搭建开发环境并避免常见问题。通过详细步骤和实战技巧,解决依赖冲突、网络超时等难题,提升开发效率。

weixin_28730353的博客 203

多线程之抢火车票

代码主要实现了抢票的功能,但是随之也出现了问题,发现三个人会抢到同一张票。接下来 就需要用到同步功能了,让每个线程在执行抢票时,必须获取抢票的锁,只有一个人抢完了票,才会释放锁,下一个人继续抢,这样就不会出现重复抢同一张票的问题了。是多线程就是多个线程去执行任务,线程一般会分为主线程,也就是main方法启动的线程,子线程,子线程中还有守护线程,也可以称为子线程服务的线程,比如GC垃圾回收线程。

weixin_38829962的博客 1035

汽水音乐自动化薅羊毛教程:从零搭建稳定赚钱脚本

📖 前言:为什么要学习自动化脚本?在数字时代,时间就是金钱。汽水音乐等App通过观看广告奖励用户金币的模式,本质上是将我们的时间转化为收益。本教程将教你如何用Python自动化这个过程,让程序为你"打工",实现被动收入。通过本教程,你将学到:移动端自动化测试的核心技术Python在自动化领域的实际应用如何将重复性任务转化为自动化流程创造属于自己的"数字员工"第一章:环境准备与基础配置1.1 硬件要求Android手机一部(建议使用备用机)USB数据线。

weixin_44947827的博客 5802

华为星闪SLE实战:手把手教你用HarmonyOS开发智能家居控制应用(附完整代码)

本文详细介绍了如何利用华为星闪SLE技术,结合HarmonyOS开发智能家居控制应用。通过对比传统无线技术,阐述了星闪SLE在低时延、高可靠性和高并发方面的优势,并提供了从环境搭建、设备发现、连接管理到核心控制代码的完整实战教程,帮助开发者快速上手这一无线短距通信技术。

bert9linguist的博客 507

【Linux操作系统】多线程抢票逻辑——学习互斥量(锁)函数接口

Linux操作系统——多线程抢票逻辑,锁(互斥量)

weixin_63449996的博客 864

Win10安装Nek5000

1 安装wsl 2 2 安装Nek5000 3 安装依赖项 4 安装openmpi 5 配置Nek5000 6 编译Nek5000 7 运行Nek5000算例 8 安装paraview并查看结果

weixin_43176703的博客 3451

多线程实现简单抢票功能

1.多线程实现抢票: 票,资源类 public class Ticket { public Integer num; public Ticket(Integer num) { this.num = num; } } 线程类具体的处理细节 public class MyThread extends Thread { private Ticket ticket; public MyThread(Ticket ticket) { thi

qq_42721085的博客 2752

GStreamer中h264parse元素

h264parse是 GStreamer 中处理 H.264 视频流的关键元素,主要负责解析和准备 H.264 流以便后续处理。

深之JohnChen的专栏 1027

【AI智能体】飞书 AI 智能客服机器人搭建与使用实战操作详解

飞书 AI 智能客服机器人搭建与使用实战操作详解

congge 6058

线程及线程池学习+实现电影院抢票案例

【代码】线程及线程池学习。

ytyDaMoTou的博客 2962

仿真学习系列(四十九):Sigrity仿真之电容库制作

在高速电路设计中,电源完整性(PI)是确保系统稳定、可靠运行的关键因素。随着电子产品对性能的要求不断提升,PDN(电源分配网络)的设计与优化变得尤为重要。为了确保电源网络在高速工作状态下不会引发电压波动和信号干扰,我们需要在设计中精确地选择电容器进行优化,而电容库的制作则是这一过程的核心。 OptimizePI作为一个强大的电源完整性优化工具,能够帮助设计师根据不同的目标,批量进行PDN仿真,以得出最佳电容选择。

案例文章,高速信号 227

玩转java多线程 之初识线程 并发问题

初识线程 并发问题

weixin_45806131的博客 265

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

5.0、Java多线程——初识并发问题

假设我们现在有10张票,小明、小红、小兰3个人在同时在购票机器上买票,当购票完成的时候我们会发现同一张票可能被多个人买到。当多个线程操作同一个资源的情况下,线程会不安全,并发问题就会引起的数据紊乱。...

m0_52433668的博客 346

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...

Java多线程-初识并发问题

Java多线程-初识并发问题

见证自己学习,成长的记录 328

多线程:初识并发问题

【代码】多线程:初识并发问题。

caiyuanj3的博客 116

java多线程6-初识并发问题

java多线程6-初识并发问题

wzwnbnb的博客 132

多线程06-初识并发问题

package com.faq.demo01; //多个线程同时操作一个同一个对象 //买火车票的例子 //多个线程操作同一个资源的情况下,线程不安全,数据紊乱 public class TestThread4 implements Runnable{ //票数 private int ticketNums = 10; @Override public void run() { while(true){ if(ticketNu

angel56789的博客 152

多线程05:初识并发问题

发现问题,多个线程操作同一个资源的情况下,线程不安全,数据紊乱 1 package com.thread.demo01; 2 3 //多个线程同时操作同一个对象 4 //买火车票的例子 5 6 //发现问题,多个线程操作同一个资源的情况下,线程不安全,数据紊乱 7 public class TestThread04 implements Runnable { 8 9 ...

断浮 107

Java进阶之多线程:Runnable接口 + 初识并发问题

学习狂神的第二天 Java进阶之多线程:Runnable接口 + 初始并发问题 文章目录学习狂神的第二天前言一、Runnable接口二、使用步骤1.创建线程2.结果样例一:模拟抢火车票结果样例二:龟兔赛跑结果 前言 众所周知,多线程有三种方法可以实现,上一篇博客我介绍了第一种,Thread类实现,那么今天,我们跟着狂神学习第二种,Runnable接口实现多线程。 一、Runnable接口 Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定义一个称为 run 的无参数方法

Linux467的博客 590

【多线程】-- 02 线程创建之实现Runnable&初识多线程并发问题

多线程笔记02 --> 线程创建方法之实现Runnable接口&初识线程并发

Schrodinger' s cat的博客 218

多线程之初识并发问题:模拟抢票,使用线程锁解决方案

多线程之初识并发问题 什么是并发:我们模拟一个抢票的例子 public class TextThread3 implements Runnable { //票数 private int tickName=10; @Override public void run() { while (true){ //如果票数小于10跳出循环 if(tickName<=0){ break

moerduo0的博客 1326

Java多线程系列(六):初识并发问题-抢票实践

第6节:初识并发问题-抢票实践 小结下前面讲的继承Thread类和实现Runnable接口. 继承Thread类: 子类继承Thread类具备多线程能力; 启动线程:子类对象.start() 不建议使用:避免OOP单继承的局限性 实现Runnable接口: 4. 实现Runnable接口具有多线程能力 5. 启动线程:传入目标对象+Thread对象.start() 6. 推荐使用:避免单继承局限性,灵活方便,方便同一个对象被多个线程使用。 实践-抢票问题 思路分析: 多人抢票,涉及多线程,可以通过实

统计学+代码 601

2021-07-02多线程详解p6初识并发问题

初识并发问题 模拟抢票 public class TestThread4 implements Runnable{ private int ticketNum = 100; @Override public void run() { while (true){ if(ticketNum<=0){ break; } System.out.println(Th

zangzangJuxy的博客 189

初识并发问题(一个对象分配三个进程同时进行取票),线程延时Thread.sleep方法

通过第二种方法实现多线程的优点在于: 可以避免单继承局限性,灵活方便,方便同一个对象被多个线程使用。 多个线程分配同一个资源会出现混乱的情况 多线程取票示例代码如下(三张图): 首先实现Runnable接口,定义票数,重写run方法,用while(true)下嵌套if(条件){ break结束循环}来实现循环输出和跳出循环 线程并发出现问题,会出现数据紊乱,取票出现错误,第五张票被重复取走 ...

qq_43363066的博客 230
上一篇: 2020-09-08
下一篇: 创建maven项目的时候出错了,Error reading /....../pom.xml
str_bowen
博客等级 码龄9年 6粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值