1700475024
//设置返回对象
1700475025
1700475026
SignInfo result=null;
1700475027
1700475028
//池中没有该对象,则建立,并放入池中
1700475029
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
[
上一页 ]
[ :1.700475024e+09 ]
[
下一页 ]