加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

[置顶] CSDN博客自动访问

发布时间:2020-12-13 20:05:17 所属栏目:PHP教程 来源:网络整理
导读:声明:本代码仅供学习文娱。 1、采取线程访问 2、使用线程池和阻塞队列 import java.net.HttpURLConnection; import java.net.URI; import java.net.URLConnection; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQ

声明:本代码仅供学习文娱。
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(); } } } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读