📄 testthreadpool.java
字号:
package threadpool;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import sqlite.Configure;
import sqlite.SCreateTable;
import sqlite.ServerFactory;
import sqlite.WriteFile;
import sqlite.SDelete;
import sqlite.curThreadID;
import java.util.Random;
public class TestThreadPool{
public static void main(String[] args) {
System.out.println("starting ...");
Configure config = new Configure();
int max_threads = Integer.parseInt(config.getProperty("max_threads"));
int max_sparethreads = Integer.parseInt(config.getProperty("max_sparethreads"));
int min_sparethreads = Integer.parseInt(config.getProperty("min_sparethreads"));
int insert = Integer.parseInt(config.getProperty("insert_thread_num"));
int select = Integer.parseInt(config.getProperty("select_thread_num"));
int update = Integer.parseInt(config.getProperty("update_thread_num"));
int willdelete = Integer.parseInt(config.getProperty("willdelete"));
int random = Integer.parseInt(config.getProperty("random"));
int randthread = Integer.parseInt(config.getProperty("randthread"));
ThreadPool tp = new ThreadPool();
tp.setMaxThreads(max_threads);
tp.setMaxSpareThreads(max_sparethreads);
tp.setMinSpareThreads(min_sparethreads);
tp.start();
//先初始化文件
try{
File sFile = new File("a.txt");
if(sFile.exists()){
sFile.delete();
}
}catch(Exception e){
}
String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
WriteFile file = new WriteFile();
file.aLine("\n");
String in = "=======================================创建时间:"+date+"==============================================";
file.aLine(in);
file.aLine("\n");
if(willdelete==1){
SDelete sd = new SDelete();
sd.Exec();
}
SCreateTable sct = new SCreateTable();
sct.Exec();
System.out.println("start for(insert):"+date);
if(random==0){
System.out.println("random==0");
curThreadID.isRandom = 0;
curThreadID.insertNum = 0;
curThreadID.updateNum = 0;
curThreadID.deleteNum = 0;
curThreadID.selectNum = 0;
if(insert > 0){
for (int i = 1; i <= insert; i++) {
tp.runIt(new Task("sqlite.SInsertA", i));
System.out.println("insert____________"+i+"__________________________________");
}
String date3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
System.out.println("start for(insert):"+date3);//
}
if(select > 0){
for (int i = 1; i <= select; i++) {
tp.runIt(new Task("sqlite.SselectA", i));
System.out.println("select____________"+i+"____________________________________");
}
String date2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
System.out.println("start for(select):"+date2);
}
if(update > 0){
for (int i = 1; i <= update; i++) {
tp.runIt(new Task("sqlite.SupdateA", i));
System.out.println("update____________"+i+"____________________________________");
}
String date4=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
System.out.println("end:"+date4);
}
}else{
curThreadID.isRandom = 1;
curThreadID.insertNum = 0;
curThreadID.updateNum = 0;
curThreadID.deleteNum = 0;
curThreadID.selectNum = 0;
System.out.println("random=="+random);
if(randthread>0){
Random rd = new Random();
for(int j=1;j<=randthread;j++){
int i = rd.nextInt(100);
int res = i % 3;
switch (res){
case 0:
tp.runIt(new Task("sqlite.SselectA", i));
curThreadID.selectNum++;
System.out.println("select____________"+i+"____________________________________");
break;
case 1:
tp.runIt(new Task("sqlite.SupdateA", i));
curThreadID.updateNum++;
System.out.println("update____________"+i+"____________________________________");
break;
case 2:
tp.runIt(new Task("sqlite.SInsertA", i));
curThreadID.insertNum++;
System.out.println("insert____________"+i+"__________________________________");
break;
}
}
}
}
}
}
class Task implements ThreadPoolRunnable {
int num;
String classname;
ServerFactory sff;
public Task(String classname, int num) {
//System.out.println("the " + num + " thread is running on ...");
this.classname = classname;
}
public Object[] getInitData() {
return null;
}
public void runIt(Object thData[]) {
try {
sff = (ServerFactory) Class.forName(classname).newInstance();
sff.init();
sff.Exec();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -