首页 > 其他分享 >线程的安全问题

线程的安全问题

时间:2023-12-14 23:12:16浏览次数:30  
标签:start t2 问题 安全 MyThread 线程 ticket public

public class ThreadDemo {
  public static void main(String[] args) {
  /*
  需求:
  某电影院目前正在上映国产大片,共有100张票,而它有3个窗口卖票,请设计一个程序模拟该电影院卖票
  */

  //创建线程对象
  MyThread t1 = new MyThread();
  MyThread t2 = new MyThread();
  MyThread t3 = new MyThread();

  //起名字
  t1.setName("窗口1");
  t2.setName("窗口2");
  t3.setName("窗口3");

  //开启线程
  t1.start();
  t2.start();
  t3.start();

  }

}

public class MyThread extends Thread {

  //表示这个类所有的对象,都共享ticket数据
  static int ticket = 0;//0 ~ 99

  @Override
  public void run() {
  while (true) {
  synchronized (MyThread.class) { //锁对象一定是惟一的
  //同步代码块 
  if (ticket < 100) {
    try {
    Thread.sleep(10);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    ticket++;
    System.out.println(getName() + "正在卖第" + ticket + "张票!!!");
    } else {
    break;
    }
}
}
}

 

}

标签:start,t2,问题,安全,MyThread,线程,ticket,public
From: https://www.cnblogs.com/haoming-1/p/17902293.html

相关文章

  • 多线程常用方法
    publicclassThreadDemo{publicstaticvoidmain(String[]args)throwsInterruptedException{/*StringgetName()返回此线程的名称voidsetName(Stringname)设置线程的名字(构造方法......
  • 2023-2024-1 20232327《网络空间安全导论》第六周学习总结
    2023-2024-120232327《网络空间安全导论》第六周学习总结教材学习内容总结1.应用安全概述应用安全是指为保障各种应用系统在信息的获取,存储,传输和处理各个环节的安全所涉及的相关技术的总称。云计算已成为当前普及的一种信息服务提供方式,为政府和企业提供了新信息系统构建方......
  • SpringBoot+MyBatis-Plus没有扫描到Mapper的问题
    一、问题:WARN22052---[      main]ConfigServletWebServerApplicationContext: NoMyBatismapperwasfoundin'[xxx.xxx.xxxx]'package.Pleasecheckyourconfiguration.WARN22052---[      main]ConfigServletWebServerApplicationConte......
  • CUDA优化相关问题总结
    如何利用ncu检查sharedmemory传输数据量ncu(NVIDIACommandLineProfiler)是NVIDIACUDA工具包中的一个命令行性能分析工具,可以用于检查共享内存(SharedMemory)的传输情况。SharedMemory是CUDA中的一种共享内存空间,可以在同一个线程块的不同线程之间共享数据。要检查Shared......
  • 【TCP】并发服务器<线程>
    //并发服务器-线程#include<stdio.h>#include<strings.h>//bzero#include<unistd.h>//close#include<sys/socket.h>//socket#include<netinet/in.h>//structsockaddr_in#include<arpa/inet.h>//inet_addr#include&......
  • 多线程的三种实现方式
    1.什么是多线程有了多线程就可以让程序同时进行多件事情。2.多线程的作用提高效率3.应用场景只要是想多件事情同时运行就需要用到多线程。4.并发和并行并发:在同一时刻,有多个指令在单个cpu上交替运行并行:在同一时刻,有多个指令在多个cpu上同时运行并发和并行有可能同时发生......
  • fastapi-cdn-host发布了 -- FastAPI接口文档/docs页面空白的问题,现在很好解决了~
    代码地址:https://github.com/waketzheng/fastapi-cdn-host如何安装:pipinstallfastapi-cdn-host使用方法:fromfastapiimportFastAPIfromfastapi_cdn_hostimportmonkey_patch_for_docs_uiapp=FastAPI()monkey_patch_for_docs_ui(app)#增加这行就能解决/docs页面空......
  • 2023-2024-1学期20232316《网络空间安全导论》第六章学习总结
    第六章应用安全基础应用安全概述应用安全是什么应用安全是为保障各种应用系统在信息的获取、存储、传输和处理各个环节的安全所涉及的相关技术的总称。应用安全的核心支撑技术是密码技术。应用安全技术的基础和关键技术是系统安全技术与网络安全技术。身份认证是保障应用......
  • 【杂题乱写】12 月北京省选树上问题专题训练
    A.Luogu-P9058Ynoi2004rpmtdq解密:RangePairMininumTreeDistanceQuery支配对问题,这里的支配是若\(L\lel<r\leR\),且\(\mathrm{dist}(l,r)\le\mathrm{dist}(L,R)\),那么\((l,r)\)支配\([L,R]\)。考虑点分治,在过程中对每个分治中心\(ct\)以及节点\(i,j\),默认\(......
  • 全解在Hyperf中避免进程残留的问题
    进程残留问题的原因进程资源未释放进程残留问题的原因主要是由于进程在运行过程中未能正确释放所占用的资源。这可能是由于代码逻辑错误、异常退出、资源管理不当等原因引起的。具体来说,进程资源未释放可能包括但不限于各种文件句柄、数据库连接、网络连接等。当这些资源没有被及时......