IDEA中怎么设置项目更改后的分析延迟时间,IDEA是java编程语言的集成开发环境,使用该软件编写代码时,可以设置项目更改后的分析延迟时间,这样就可确保项目范围分析的正确性,具体的操作步骤如下。......
2023-07-04 533 JAVA
当多个线程同时去读取或者修改一个资源的时候,如果不采取措施,那么就会出现抢夺资源,对应银行等行业,对于数字比较敏感的行业,要是出现了一个数据被多次同时修改是一件很危险的事情。
您可以试想一下,如果不解决一个值被多次修改,您的朋友通过柜台操作您的账户,您通过取款机操作您的银行卡账户,您的账户有1000,当系统第一查询的时候,您的账户都是有钱的,您们两个同时取钱,那么两次取款都会成功。
这个过程会有可能发生线程安全的问题。因此,在银行等对数字比较敏感的行业中,是不允许这种事发生的。
为了解决这个问题,通常采取的措施是不让一条数据被同时修改。
我们创建一个类,并在类中创建一个可以执行代码的main方法。
创建两个新的线程。如下图所示:
接下来,我们创建一个匿名内部类,用来重写run方法。将业务逻辑放入其中即可。
我们这里做一个while循环,让线程多次去执行while循环。
在java中,我们采用互斥锁的方式,让数据只能同时被一个人操作,第二个人要操作,他需要等待这个个人操作完成后,他才能操作,这样就解决了线程安全问题。
在java中,我们线程锁使用的是synchronized.您可以将其加在方法中,给整个方法都加锁。
也可以将关键部分放到一个互斥锁中,当多次操作同时进行时候,等待之前用户操作完成后,下一个用户或是下一次操作再继续。
以上既是多线程中比较常用的互斥锁,他可以解决一个时间点多次操作而带来的线程安全问题。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
IDEA中怎么设置项目更改后的分析延迟时间,IDEA是java编程语言的集成开发环境,使用该软件编写代码时,可以设置项目更改后的分析延迟时间,这样就可确保项目范围分析的正确性,具体的操作步骤如下。......
2023-07-04 533 JAVA
IDEA中怎么设置调试器最近表达式的最大数量,IDEA是java编程语言的集成开发环境,使用该软件编写代码时,可以设置调试器最近表达式的最大数量,从而有效避免调试器中表达式存储过多。......
2023-07-04 364 JAVA