jedis线程池的代码【转】

备忘:(本机i5的测试数据:redis线程执行时间是:21187 ms)

01 public class Demo2 {
02       
03      private static JedisPool pool;
04       
05      static {
06          JedisPoolConfig config = new JedisPoolConfig();
07          config.setMaxActive( 100 );
08          config.setMaxIdle( 20 );
09          config.setMaxWait( 1000 );
10          config.setTestOnBorrow( true );
11           
12          pool = new JedisPool(config, "localhost" );
13      }
14  
15      public static void main(String[] args) {
16          Demo2 demo = new Demo2();
17          demo.test();
18      }
19  
20      public void test() {
21          initInsert();
22          testThread();
23      }
24       
25      private void initInsert() {
26          Jedis jedis = pool.getResource();
27          for ( int i= 0 ; i< 20000 ; i++)
28              jedis.set(String.valueOf(i), String.valueOf(i));
29          pool.returnResource(jedis);
30      }
31       
32      private void testThread() {
33          long begin = System.currentTimeMillis();
34           
35          Thread thread[] = new Thread[ 60 ];
36          for ( int i= 0 ; i<thread.length; i++) {
37              thread[i] = new MyThread();
38              thread[i].start();
39          }
40           
41          for ( int i= 0 ; i<thread.length; i++) {
42              try {
43                  thread[i].join();
44              } catch (InterruptedException e) {
45                  e.printStackTrace();
46              }
47          }
48           
49          long end = System.currentTimeMillis();
50          System.out.println( "线程执行时间是:" + (end - begin) + " ms" );
51      }
52       
53      class MyThread extends Thread {
54          @Override
55          public void run() {
56              Jedis jedis = Demo2.pool.getResource();
57              for ( int i= 0 ; i< 20000 ; i++)
58                  jedis.get(String.valueOf(i));
59              Demo2.pool.returnResource(jedis);
60          }
61      }
62 }

你可能感兴趣的:(redis,thread)