以下是一个基于Java的简单并发程序示例,可以同时启动多个线程对指定URL进行HTTP请求,并输出响应结果和耗时信息。
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
public class SimpleConcurrentHttpClient {
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("Usage: java SimpleConcurrentHttpClient [url] [concurrency]");
return;
}
String urlStr = args[0];
int concurrency = Integer.parseInt(args[1]);
for (int i = 0; i < concurrency; i++) {
new Thread(() -> {
try {
long startTime = System.currentTimeMillis();
URL url = new URL(urlStr);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
int statusCode = connection.getResponseCode();
long endTime = System.currentTimeMillis();
System.out.println("Thread " + Thread.currentThread().getId() + ": " +
"Status code: " + statusCode +
", Elapsed time: " + (endTime - startTime) + "ms");
} catch (IOException e) {
e.printStackTrace();
}
}).start();
}
}
}
该程序接受两个参数:URL和并发数。程序通过启动多个线程并发访问指定URL,每个线程发送一个HTTP GET请求并输出响应状态码和耗时信息。
在以上代码中,我们使用了Java的Thread类来创建多个线程,并使用Lambda表达式创建了一个Runnable对象作为线程执行体。在这个Runnable对象中,我们使用了Java的URL类和HttpURLConnection类来进行HTTP请求,并输出响应状态码和耗时信息。
通过使用Java的并发编程机制,我们可以轻松地实现高性能、高并发的网络应用程序。当然,在实际应用中,我们还需要考虑各种并发问题,例如线程安全、锁竞争、死锁等问题,以保证程序正确、可靠地运行。