java 并发的类_java测试并发类

/**

* ConTest.java

* 版权所有(C) 2012

* 创建:cuiran 2012-07-12 10:12:14

*/

package com.wpndemo.test;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Set;

import java.util.Map;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

import java.util.concurrent.Semaphore;

public class ConTest{

private static int thread_num = 10;

private static int client_num = 10;

private static int num=0;

public static int getNo(){

num=num+1;

System.out.println(num);

return num;

}

private static Map keywordMap = new HashMap();

static {

//try {

//

//InputStreamReader isr = new InputStreamReader(new FileInputStream(

//

//new File("clicks.txt")), "GBK");

//

//BufferedReader buffer = new BufferedReader(isr);

//

//String line = "";

//

//while ((line = buffer.readLine()) != null) {

//

//keywordMap.put(line.substring(0, line.lastIndexOf(":")), "");

//

//}

//

//} catch (Exception e) {

//

//e.printStackTrace();

//

//}

}

public static void main(String[] args) {

int size = keywordMap.size();

// TODO Auto-generated method stub

ExecutorService exec = Executors.newCachedThreadPool();

keywordMap.put("test01", "38338");

keywordMap.put("test02", "38339");

keywordMap.put("test03", "38340");

keywordMap.put("test04", "38341");

keywordMap.put("test05", "38342");

//keywordMap.put("test06", "38343");

//keywordMap.put("test07", "38344");

//keywordMap.put("test08", "38345");

//keywordMap.put("test09", "38346");

//keywordMap.put("test10", "38347");

// 50个线程可以同时访问

final Semaphore semp = new Semaphore(thread_num);

// 模拟2000个客户端访问

Set set =keywordMap.keySet();//

Iterator it=set.iterator();

int index=0;

while(it.hasNext()){

String userName= (String) it.next();//

final String pass=keywordMap.get(userName).toString();//

Runnable run = new Runnable() {

int NO = ConcurrentTest.num;;

public void run() {

try {

// 获取许可

semp.acquire();

System.out.println("Thread:" + NO);

String host = "http://192.168.0.137:8080/MessageWeb/messageSrevlet.do?";

String para = "m=reqcalltaxi&id="+pass+"&key=35bc7f25daa881fa0974730276868f12&phone=13401038652&bx=116.311754&by=40.034496&"

+ "bLocation=%E4%B8%8A%E5%9C%B0&bDes=%E5%8C%97%E4%BA%AC%E5%B8%82%E6%B5%B7%E6%B7%80%E5%8C%BA%E4%B8%8A%E5%9C%B03%E8%A1%97%E7%8E%AF%E5%B2%9B%E8%A5%BF%E5%8D%97%E8%A7%92(%E8%BF%91%E4%B8%8A%E5%9C%B0%E7%8E%AF%E5%B2%9B)&"

+ "ex=116.315942&ey=40.05343&eLocation=%E8%A5%BF%E4%BA%8C%E6%97%97&eDes=333%E8%B7%AF%E5%86%85%E7%8E%AF,333%E8%B7%AF%E5%A4%96%E7%8E%AF,392%E8%B7%AF,%E8%BF%90%E9%80%9A114%E8%B7%AF,636%E8%B7%AF&"

+ "time=15&userNum=1&isSalute=1&name=%E6%9C%B1%E5%85%88%E7%94%9F&level=3&credit=-3&bytime=2012-07-12%2016:34:17&type=0¬ifytime=2012-07-12%2016:34:17&s=123456&"

+ "jsoncallback=jQuery16208664285382739452_1342059526704&_=1342059557372";

System.out.println(host + para);

URL url = new URL(host);// 此处填写供测试的url

HttpURLConnection connection = (HttpURLConnection) url

.openConnection();

// connection.setRequestMethod("POST");

// connection.setRequestProperty("Proxy-Connection",

// "Keep-Alive");

connection.setDoOutput(true);

connection.setDoInput(true);

PrintWriter out = new PrintWriter(connection

.getOutputStream());

out.print(para);

out.flush();

out.close();

BufferedReader in = new BufferedReader(

new InputStreamReader(connection

.getInputStream()));

String line = "";

String result = "";

while ((line = in.readLine()) != null) {

result += line;

}

// System.out.println(result);

// Thread.sleep((long) (Math.random()) * 1000);

// 释放

System.out.println("第:" + NO + " 个");

semp.release();

} catch (Exception e) {

e.printStackTrace();

}

}

};

exec.execute(run);

}

// 退出线程池

exec.shutdown();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值