java的线程安全跟非安全到底是什么意思?
答案:2 悬赏:30 手机版
解决时间 2021-12-29 05:36
- 提问者网友:浪荡绅士
- 2021-12-28 16:33
java的线程安全跟非安全到底是什么意思?
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-12-28 18:06
一个线程安全的方法,在多个线程里竞争的调用,并不会引起数据不一致,返回结果不同于预期等情况,可以说它是线程安全的。
比如下面的方法是线程安全的:
public int add(int a, int b) {return a + b;},无论多少个线程同时调用这个方法,都不会因为竞争而导致错误,当然,它有可能导致溢出错误,不过这不是线程安全要关注的。
再比如下面的就不是线程安全:
int n = 0;
public int increase() {n ++; return n;}
假设有A和B两个线程调用此方法:
A 在n++之后休息了一下,别问为啥休息,它就休息了
B 这时候又n++了一下,然后两个线程都返回了结果2。
比如下面的方法是线程安全的:
public int add(int a, int b) {return a + b;},无论多少个线程同时调用这个方法,都不会因为竞争而导致错误,当然,它有可能导致溢出错误,不过这不是线程安全要关注的。
再比如下面的就不是线程安全:
int n = 0;
public int increase() {n ++; return n;}
假设有A和B两个线程调用此方法:
A 在n++之后休息了一下,别问为啥休息,它就休息了
B 这时候又n++了一下,然后两个线程都返回了结果2。
全部回答
- 1楼网友:你可爱的野爹
- 2021-12-28 18:24
就是这个解释
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯