您的位置:首页 > 编程语言 > Java开发

Java多线程执行,主程序等待其他线程执行完成

2013-09-10 17:22 295 查看
import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.client.HTable;

import org.apache.hadoop.hbase.client.Put;

import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;

public class MltPutBench {

  public static void main(String[] args)throws IOException {

    Configuration conf = HBaseConfiguration.create();

    HTable table1 = new HTable(conf,"testtable");

    HTable table2 = new HTable(conf,"testtable");

    HTable table3 = new HTable(conf,"testtable");

    PutThread p1 = new PutThread("t1",table1);

    PutThread p2 = new PutThread("t2",table2);

    PutThread p3 = new PutThread("t3",table3);

    p1.s
4000
tart();

    p2.start();

    p3.start();

    try{

    p1.join();

    p2.join();

    p3.join();

    }catch ( InterruptedException e ){

       e . printStackTrace ();

    }

    System.out.println("Run finished");

  }

}

class PutThread extends Thread{

    private HTable tb;

    private String tname;

    PutThread(String name, HTable table){

        super(name);

        tname = name;

        tb = table;

    }

    public void run(){

        Put put=null;

        for(int i=0;i<3330 ;i++){

            put = new Put(Bytes.toBytes("row"+i));

            put.add(Bytes.toBytes("colfam1"),Bytes.toBytes("qual"+i),Bytes.toBytes("val"+i));

                try{

                   long beginTime = System.currentTimeMillis();

                   tb.put(put);

                   long consumeTime = System.currentTimeMillis() - beginTime;

                   System.out.println("Timeuse of "+tname+":"+consumeTime);

                   }catch(IOException e){

                   System.out.println("Error");

                  }

        }

   }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 多线程 线程 thread
相关文章推荐