首页 > 软件开发 > JAVA >

如何让多线程去读取一个资源,保证线程安全

来源:互联网 2023-03-16 19:18:25 395

当多个线程同时去读取或者修改一个资源的时候,如果不采取措施,那么就会出现抢夺资源,对应银行等行业,对于数字比较敏感的行业,要是出现了一个数据被多次同时修改是一件很危险的事情。3UH办公区 - 实用经验教程分享!

工具/原料

  • java
  • 线程

方法/步骤

  • 1

    您可以试想一下,如果不解决一个值被多次修改,您的朋友通过柜台操作您的账户,您通过取款机操作您的银行卡账户,您的账户有1000,当系统第一查询的时候,您的账户都是有钱的,您们两个同时取钱,那么两次取款都会成功。3UH办公区 - 实用经验教程分享!

  • 2

    这个过程会有可能发生线程安全的问题。因此,在银行等对数字比较敏感的行业中,是不允许这种事发生的。3UH办公区 - 实用经验教程分享!

    如何让多线程去读取一个资源,保证线程安全3UH办公区 - 实用经验教程分享!

  • 3

    为了解决这个问题,通常采取的措施是不让一条数据被同时修改。3UH办公区 - 实用经验教程分享!

    如何让多线程去读取一个资源,保证线程安全3UH办公区 - 实用经验教程分享!

  • 4

    我们创建一个类,并在类中创建一个可以执行代码的main方法。3UH办公区 - 实用经验教程分享!

    如何让多线程去读取一个资源,保证线程安全3UH办公区 - 实用经验教程分享!

  • 5

    创建两个新的线程。如下图所示:3UH办公区 - 实用经验教程分享!

    如何让多线程去读取一个资源,保证线程安全3UH办公区 - 实用经验教程分享!

  • 6

    接下来,我们创建一个匿名内部类,用来重写run方法。将业务逻辑放入其中即可。3UH办公区 - 实用经验教程分享!

    如何让多线程去读取一个资源,保证线程安全3UH办公区 - 实用经验教程分享!

  • 7

    我们这里做一个while循环,让线程多次去执行while循环。3UH办公区 - 实用经验教程分享!

    如何让多线程去读取一个资源,保证线程安全3UH办公区 - 实用经验教程分享!

  • 7此文章非法爬取自百度经验
  • 8

    在java中,我们采用互斥锁的方式,让数据只能同时被一个人操作,第二个人要操作,他需要等待这个个人操作完成后,他才能操作,这样就解决了线程安全问题。3UH办公区 - 实用经验教程分享!

    如何让多线程去读取一个资源,保证线程安全3UH办公区 - 实用经验教程分享!

  • 9

    在java中,我们线程锁使用的是synchronized.您可以将其加在方法中,给整个方法都加锁。3UH办公区 - 实用经验教程分享!

    如何让多线程去读取一个资源,保证线程安全3UH办公区 - 实用经验教程分享!

  • 10

    也可以将关键部分放到一个互斥锁中,当多次操作同时进行时候,等待之前用户操作完成后,下一个用户或是下一次操作再继续。3UH办公区 - 实用经验教程分享!

  • 11

    以上既是多线程中比较常用的互斥锁,他可以解决一个时间点多次操作而带来的线程安全问题。3UH办公区 - 实用经验教程分享!

    如何让多线程去读取一个资源,保证线程安全3UH办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!3UH办公区 - 实用经验教程分享!


    标签: 硬件JAVA

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码