⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testthreadpool.java

📁 主要对各种数据库性能进行测试
💻 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 + -