添加批量数据并行支持
This commit is contained in:
@@ -11,10 +11,13 @@ public class ShortLinkSample {
|
||||
SydApi.SYD_SetLogConfig("./logs/",3);
|
||||
|
||||
String[] pcipList = {"127.0.0.1", "192.168.0.200" };
|
||||
int[] iportList ={8080,8889};
|
||||
int[] iportList = {8080,8889};
|
||||
SydApi api = new SydApi4Database();
|
||||
try {
|
||||
api.SYD_Short_Connect_Ex(pcipList,iportList,10,10);
|
||||
|
||||
|
||||
|
||||
} finally {
|
||||
if ( null != api ) {
|
||||
api.SYD_Disconnect_Ex();
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
package test;
|
||||
|
||||
import com.sunyard.proto.Util;
|
||||
import com.sunyard.sge.database.*;
|
||||
import org.checkerframework.checker.units.qual.A;
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class BatchDataTest {
|
||||
|
||||
private SydApi api;
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
// System.setProperty("com.sunyard.sydapi4j.debug", "true");
|
||||
|
||||
SydApiBuilder builder = new SydApiBuilder(
|
||||
new String[]{"192.168.1.129"},
|
||||
new int[]{8889},
|
||||
10,
|
||||
15
|
||||
|
||||
);
|
||||
api = builder.build();
|
||||
}
|
||||
|
||||
@After
|
||||
public void end(){
|
||||
if ( null != api ) {
|
||||
api.SYD_Disconnect_Ex();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void batchSM4Case1(){
|
||||
// 密钥索引
|
||||
int[] keyIdx = new int[]{ 0, 1, 2 , 0, 1, 2, 0, 1, 2, 0, 1, 2}; // 12 组
|
||||
// 测试数据
|
||||
List<byte[]> data = new ArrayList<>();
|
||||
data.add( new byte[8] );
|
||||
data.add( new byte[16] );
|
||||
data.add( new byte[1024] );
|
||||
data.add( new byte[8] );
|
||||
data.add( new byte[16] );
|
||||
data.add( new byte[1024] );
|
||||
data.add( new byte[8] );
|
||||
data.add( new byte[16] );
|
||||
data.add( new byte[1024] );
|
||||
data.add( new byte[8] );
|
||||
data.add( new byte[16] );
|
||||
data.add( new byte[1024] );
|
||||
|
||||
List<byte[]> encData = api.SYD_SM4_BatchData( keyIdx , data, Consts.ECB_ENC );
|
||||
List<byte[]> orgData = api.SYD_SM4_BatchData( keyIdx , encData, Consts.ECB_DEC );
|
||||
|
||||
for ( int i = 0 ; i < data.size() ; i++ ) {
|
||||
System.out.println( "HEX=" + Util.bytes2HexString( encData.get( i ) ) );
|
||||
Assert.assertArrayEquals( orgData.get( i ), data.get( i ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
package test;
|
||||
|
||||
import com.sunyard.sge.pool.CommWorker;
|
||||
import com.sunyard.sge.pool.PoolConfig;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.concurrent.*;
|
||||
|
||||
public class FutureTaskTest {
|
||||
|
||||
/**
|
||||
* 并发任务
|
||||
*/
|
||||
@Test
|
||||
public void case1() throws ExecutionException, InterruptedException, TimeoutException {
|
||||
PoolConfig poolConfig = new PoolConfig();
|
||||
CommWorker workers = new CommWorker(poolConfig);
|
||||
|
||||
long startAt = System.currentTimeMillis();
|
||||
try {
|
||||
FutureTask<Integer> task1 = workers.fTask(new Callable<Integer>() {
|
||||
|
||||
@Override
|
||||
public Integer call() throws Exception {
|
||||
System.out.println( Thread.currentThread() + " task start");
|
||||
Thread.sleep( 1000 );
|
||||
System.out.println( Thread.currentThread() + " task over");
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
|
||||
FutureTask<Integer> task2 = workers.fTask(new Callable<Integer>() {
|
||||
|
||||
@Override
|
||||
public Integer call() throws Exception {
|
||||
System.out.println( Thread.currentThread() + " task start");
|
||||
Thread.sleep( 2000 );
|
||||
System.out.println( Thread.currentThread() + " task over");
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
|
||||
FutureTask<Integer> task3 = workers.fTask(new Callable<Integer>() {
|
||||
|
||||
@Override
|
||||
public Integer call() throws Exception {
|
||||
System.out.println( Thread.currentThread() + " task start");
|
||||
Thread.sleep( 3000 );
|
||||
System.out.println( Thread.currentThread() + " task over");
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
task1.get( );
|
||||
task2.get( );
|
||||
task3.get( );
|
||||
}finally {
|
||||
|
||||
long endAt = System.currentTimeMillis();
|
||||
|
||||
System.out.println("耗时 " + ( endAt - startAt ) );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -92,13 +92,12 @@ package test;
|
||||
//}
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Test {
|
||||
public static void main(String[] args) {
|
||||
if (16 > 1799 + 16
|
||||
||
|
||||
(1799 + 16)/16<2
|
||||
) {
|
||||
System.out.println("1");
|
||||
}
|
||||
List<Integer> keyGroups = new ArrayList<>();
|
||||
keyGroups.toArray( new Integer[0] );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user