Java中非线程安全的类如何转换成线程安全的类
答案:1 悬赏:20 手机版
解决时间 2021-03-25 09:55
- 提问者网友:献世佛
- 2021-03-25 05:31
Java中非线程安全的类如何转换成线程安全的类
最佳答案
- 五星知识达人网友:荒野風
- 2021-03-25 06:10
一个线程安全的方法,在多个线程里竞争的调用,并不会引起数据不一致,返回结果不同于预期等情况,可以说它是线程安全的。
比如下面的方法是线程安全的:
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。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯