程序员人生 网站导航

[置顶] CSDN博客自动访问

栏目:php教程时间:2015-04-09 08:48:23

声明:本代码仅供学习文娱。
1、采取线程访问
2、使用线程池和阻塞队列

import java.net.HttpURLConnection; import java.net.URI; import java.net.URLConnection; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * * 访问csdn博客,增加访问量,纯属文娱 * 采取多线程,增加访问速度 */ public class CSDNBlog { public static void main(String[] args) throws Exception { for (int i = 0; i < 10; i++) { RequestBlogRun conn = new RequestBlogRun(); Thread t = new Thread(conn); t.start(); } } /** * 构造对博客的要求 * */ public static class RequestBlogRun implements Runnable { public static final String BLOG_URL = "http://blog.csdn.net/jinyingone/article/details/44084051"; //要求的阻塞队列 private BlockingQueue<HttpURLConnection> bq = new ArrayBlockingQueue<HttpURLConnection>(5); //要求的线程池 private ExecutorService service = Executors.newFixedThreadPool(3); @Override public void run() { boolean flag = true; while (flag) { try { URLConnection conn = URI.create(BLOG_URL).toURL().openConnection(); conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); conn.setConnectTimeout(20000); HttpURLConnection httpConn = (HttpURLConnection) conn; bq.put(httpConn); service.execute(new ConnBlog(bq)); } catch (Exception e) { e.printStackTrace(); } } } } /** * *实际访问blog */ public static class ConnBlog implements Runnable { private static int i = 0; private BlockingQueue<HttpURLConnection> bq; public ConnBlog(BlockingQueue<HttpURLConnection> bq) { this.bq = bq; } public void run() { try { HttpURLConnection conn = bq.take(); System.out.println("responseCode:"+conn.getResponseCode()); i++; System.out.println("times:" + i); if(i > 1000000){ //为了提高效力,没有加锁,次数有出入 System.out.println("program finshed,will exit!"); System.exit(0); } } catch (Exception e) { e.printStackTrace(); } } } }
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐