[置顶] CSDN博客自动访问

开发技术 作者: 2024-06-16 23:55:02
声明:本代码仅供学习娱乐。 1、采用线程访问 2、使用线程池和阻塞队列import java.net.HttpURLConnection;import java.net.URI;import java.net.URLConnection;import java.util.concurrent.Arr

声明:本代码仅供学习文娱。
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(); } } } }
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_28345.html