学习引用多线程

本文介绍了线程安全的基本概念,通过火车票抢票实例说明线程同步的重要性。探讨了线程/内存不安全的原因,并计划用Java代码演示如何解决多线程抢票问题。视频链接可供进一步学习。
摘要由CSDN通过智能技术生成

一、线程安全
1.1 什么是线程安全?

当多个线程访问一个资源对象时,如果进行了额外的同步控制,或者其他的协调操作,调用这个对象都可以获得正确的结果 (即多个线程去访问同一个对象,和单个线程去执行,其结果是一样的),我们就说这个对象是线程安全的;

1.2 简单案例解释

就拿上面的火车抢票来举例,你可以把火车票看成是一个共享的资源对象,那么多个人去抢同一张票就是多个线程去竞争同一个资源对象,无论是此时只有我一个人在抢票,还是多个人去同时抢票,我们都应该能够买到我们要买的那张票,而不会出现两个人同时抢到一张票的情况

1.3 造成线程/内存不安全的主要原因是什么?
  • 目前主流的操作系统都是多任务的,即多个线程同时运行,为了保证线程安全,每个线程只能访问分配给自己的内存空间,而不能访问别的进程的,这是由操作系统所保障的

  • 而在每个线程的内存空间中,都会有一块特殊的公共区域,通常称为 (也就是内存),进程内的所有线程都可以访问到该区域,这就是造成线程安全问题的潜在因素

通过上面对线程安全的学习,你是否对线程安全有了简单的了解;接下来,就让我们一起用Java代码来实现简单的多线程火车抢票问题吧!

二、多线程抢火车票问题

结果:

参考视频链接
https://www.bilibili.com/video/BV1V4411p7EF (B站UP主遇见狂神说的多线程详解)
https://www.bilibili.com/video/BV1Eb4y1R7zd (B站UP主图灵学院程序员Mokey)



文章参考

多线程基础学习之线程安全和抢火车票问题_两个人同时抢单怎么解决csdn-CSDN博客

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值