1700475030
if(!pool.containsKey(key)){
1700475031
1700475032
result=new SignInfo();
1700475033
1700475034
pool.put(key,result);
1700475035
1700475036
}else{
1700475037
1700475038
result=pool.get(key);
1700475039
1700475040
}
1700475041
1700475042
return result;
1700475043
1700475044
}
1700475045
1700475046
}
1700475047
1700475048
下面做很小的改动,只修改了黑色字体部分。为了展示多线程的情况,我们写一个多线程的类,如代码清单28-11所示。
1700475049
1700475050
代码清单28-11 多线程场景
1700475051
1700475052
public class MultiThread extends Thread{
1700475053
1700475054
private SignInfo signInfo;
1700475055
1700475056
public MultiThread(SignInfo_signInfo){
1700475057
1700475058
this.signInfo=_signInfo;
1700475059
1700475060
}
1700475061
1700475062
public void run(){
1700475063
1700475064
if(!signInfo.getId().equals(signInfo.getLocation())){
1700475065
1700475066
System.out.println(“编号:”+signInfo.getId());
1700475067
1700475068
System.out.println(“考试地址:”+signInfo.getLocation());
1700475069
1700475070
System.out.println(“线程不安全了!”);
1700475071
1700475072
}
1700475073
1700475074
}
1700475075
1700475076
}
1700475077
1700475078
在run方法中判断特殊值,检查是否是线程安全,我们来看看场景类,如代码清单28-12所示。
1700475079
[
上一页 ]
[ :1.70047503e+09 ]
[
下一页 ]