打字猴:1.70047503e+09
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 ]  [ 下一页 ]