首页 > 其他分享 >06 初识并发问题

06 初识并发问题

时间:2023-08-29 14:47:41浏览次数:49  
标签:06 Thread ticketNums 并发 初识 线程 new ticket

package ThreadDemo;
//多个线程同时操作同一个对象,涉及到资源的独享与共享并发什么的
// 多个线程同时操作同一个对象,可能会出现问题:线程不安全,数据紊乱    ------>上锁
// 并发与同步
  // 火车票例子
public class Test06 implements Runnable{
    int ticketNums=10;
    @Override
    public void run() {
        while (true){
            if (ticketNums==0){ break;}
            try {
                Thread.sleep(200);    // 模拟延迟
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.out.println(Thread.currentThread().getName()+"--->抢到了第"+ ticketNums-- +"张票");
            // Thread.currentThread().getName() :获得线程体的名字
        }
    }

    public static void main(String[] args) {
        // 多个线程同时操作同一个对象,可能会出现问题------>上锁
        Test06 ticket = new Test06();
        new Thread(ticket,"学生").start();  // 名为 学生线程体
        new Thread(ticket,"老师").start();  // 老师线程体
        new Thread(ticket,"黄牛").start();  // 黄牛线程体
    }
}

标签:06,Thread,ticketNums,并发,初识,线程,new,ticket
From: https://www.cnblogs.com/zhanjianhai/p/17664700.html

相关文章

  • 常见的并发网络服务程序设计方案
    文章目录一、最基本的并发网络服务:IO复用1、select模型2、poll模型3、epoll模型二、单线程Reactor三、Reactor+ThreadPool四、MultipleReactors(oneloopperthread)一、最基本的并发网络服务:IO复用目前常用的IO复用模型有三种:select,poll,epoll。1、select模型说的通俗一点就是......
  • 【muduo】常见的并发网络服务程序设计方案
    文章目录一、IO复用1、select模型2、poll模型3、epoll模型二、单线程Reactor三、Reactor+ThreadPool四、MultipleReactors(oneloopperthread)一、IO复用目前常用的IO复用模型有三种:select,poll,epoll。1、select模型说的通俗一点就是各个客户端连接的文件描述符也就是套接字,都......
  • Java并发编程的挑战与解决方案
    Java并发编程是一个复杂而重要的主题,开发者在处理并发场景时经常面临各种挑战。本文将讨论Java并发编程中的一些重要概念和问题,并提供实际的代码示例和解决方案。一、Java并发编程的基本概念线程与进程的区别并发和并行的概念共享资源与竞态条件线程安全性与数据同步二、Java......
  • 深入探究Java中的多线程并发与同步
    在后端开发中,多线程编程是一项关键技术,能够充分利用多核处理器,提高系统性能和响应能力。然而,多线程编程涉及到并发与同步问题,可能引发复杂的线程安全难题。本篇博客将深入探讨Java中的多线程编程,重点关注并发问题和同步机制。并发与多线程并发是指多个任务在同一时间段内执行,而多线......
  • 初识MySql
    初始MySqljavaEE:企业级java开发web前端(页面:展示,数据!)后台(连接点,链接数据库JDBC,链接前端(控制,控制试图跳转,给前端传数据))数据库(存数据,Txt,Excel,Word)1.只写代码,数据库。基本操作2.操作系统,数据结构与算法!3.离散数学,数学电路,体系结构1.学习数据库原因?岗位需求。大数据时代。......
  • 初识 Monad
    简述学前,MonadsforfunctionalprogrammingCase1,introducesmonadsWebeginwiththebasicevaluatorforsimpleterms,thenconsidervariationsthatmimicexceptions,state,andoutput.......
  • Go语言并发编程实践
    Go语言是一门现代化的编程语言,以其独特而强大的并发模型而著名。Go通过轻量级的协程(goroutine)和通信机制(channel)实现了高效的并发编程。本篇博客将介绍Go语言的并发模型,讨论并发编程的基本概念和常用模式,并探索如何利用Go的并发特性来提升程序性能和开发效率。并发编程的重要性......
  • 06 二层交换机转发行为
    接入层负责终端的接入,平常在家使用的WiFi是利用胖AP实现的接入层工作,AP是无线的接入层,在有线的环境负责终端接入的是二层交换机,将终端的RJ45口(网口)通过网线和交换机相连就完成终端接入了,无线终端使用手机连接对应的WiFi就实现接入了,本章介绍的有线的接入层设备,以太网二层交换机......
  • 初识Docker-Docker的安装
                ......
  • 标准C++ -- day06
    一、什么是继承当遇到问题时,先查看现有的类是否能解决一部分问题,如果有则继承该类,并在此基础上扩展以此解决问题,从而缩短解决问题的时间(代码复用)当遇到一个大而复杂的问题时,可以把大问题拆分成若干个不同的小问题,然后为每个小问题设计一个类来解决,最后通过继承的方式把这......