check方法加锁
This commit is contained in:
parent
5243ec1fe1
commit
24335ccd95
@ -12,6 +12,8 @@ import java.util.Map;
|
|||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.concurrent.locks.Lock;
|
||||||
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
|
|
||||||
public class ThreadBasedConnectPool<T> {
|
public class ThreadBasedConnectPool<T> {
|
||||||
static {
|
static {
|
||||||
@ -28,6 +30,7 @@ public class ThreadBasedConnectPool<T> {
|
|||||||
private PoolConfig config;
|
private PoolConfig config;
|
||||||
|
|
||||||
public ThreadBasedConnectPool(PoolConfig config) {
|
public ThreadBasedConnectPool(PoolConfig config) {
|
||||||
|
Lock l = new ReentrantLock();
|
||||||
this.config = config;
|
this.config = config;
|
||||||
threadPool.scheduleAtFixedRate(new Runnable() {
|
threadPool.scheduleAtFixedRate(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@ -62,10 +65,14 @@ public class ThreadBasedConnectPool<T> {
|
|||||||
|
|
||||||
boolean checkRet = false;
|
boolean checkRet = false;
|
||||||
try {
|
try {
|
||||||
|
l.lock();
|
||||||
checkRet = check(entry.getValue().getObject());
|
checkRet = check(entry.getValue().getObject());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
checkRet = false;
|
checkRet = false;
|
||||||
}
|
}
|
||||||
|
finally {
|
||||||
|
l.unlock();
|
||||||
|
}
|
||||||
|
|
||||||
if (checkRet) {
|
if (checkRet) {
|
||||||
log.debug("一个链接检查未通过");
|
log.debug("一个链接检查未通过");
|
||||||
|
|||||||
@ -9,8 +9,7 @@ import org.junit.Assert;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class PrefTest
|
public class PrefTest {
|
||||||
{
|
|
||||||
public static void main(String[] args) throws InterruptedException {
|
public static void main(String[] args) throws InterruptedException {
|
||||||
|
|
||||||
// System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
// System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||||
@ -73,7 +72,6 @@ public class PrefTest
|
|||||||
long et = System.currentTimeMillis();
|
long et = System.currentTimeMillis();
|
||||||
System.out.println("short t1=" + (et - st));
|
System.out.println("short t1=" + (et - st));
|
||||||
|
|
||||||
|
|
||||||
// 批量
|
// 批量
|
||||||
st = System.currentTimeMillis();
|
st = System.currentTimeMillis();
|
||||||
batchData(api);
|
batchData(api);
|
||||||
@ -94,10 +92,12 @@ public class PrefTest
|
|||||||
byte[] encData = new byte[16];
|
byte[] encData = new byte[16];
|
||||||
try {
|
try {
|
||||||
encData = api.SYD_SM4_ShortData(keyIdx, data, Consts.ECB_ENC);
|
encData = api.SYD_SM4_ShortData(keyIdx, data, Consts.ECB_ENC);
|
||||||
}catch ( Exception e){}
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
byte[] orgData = api.SYD_SM4_ShortData(keyIdx, encData, Consts.ECB_DEC);
|
byte[] orgData = api.SYD_SM4_ShortData(keyIdx, encData, Consts.ECB_DEC);
|
||||||
}catch ( Exception e){}
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
// System.out.println( "HEX=" + Util.bytes2HexString( encData ) );
|
// System.out.println( "HEX=" + Util.bytes2HexString( encData ) );
|
||||||
// Assert.assertArrayEquals( orgData, data );
|
// Assert.assertArrayEquals( orgData, data );
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user