当前位置: 首页 > news >正文

营销型网站建设模板网上销售渠道

营销型网站建设模板,网上销售渠道,哈尔滨网站建设制作,拓者室内设计网站抓取数据只靠一个单独的线程来工作,速度很慢,如果多开起几个线程速度是不是是原来的几倍呢?这个不用回答了。 1、创建线程可以继承Thread类和实现接口Runnable,2种方式。 2、现在就看看具体怎么在项目中运用到的。首先看看线程类ManyThread…

抓取数据只靠一个单独的线程来工作,速度很慢,如果多开起几个线程速度是不是是原来的几倍呢?这个不用回答了。

 

1、创建线程可以继承Thread类和实现接口Runnable,2种方式。

2、现在就看看具体怎么在项目中运用到的。首先看看线程类ManyThread 的实现:

package com.xing.thread;import com.xing.action.crawl.SpecialtyAction;public class ManyThread extends Thread {@Overridepublic void run() {while(TestThread.urlList.size()>0){try {String url = TestThread.getOneUrl();System.out.println("Thread " + Thread.currentThread().getName() + " prints :" +url);SpecialtyAction specialtyAction = new SpecialtyAction();SpecialtyAction.init();String baseUrl ="http://gkcx.eol.cn/";specialtyAction.collegeSpecialty(url, baseUrl);} catch (Exception e) {e.printStackTrace();}}}}

注释:(1)通过继承Thread创建线程。

(2)重写线程类的run()方法,这里主要是你的业务逻辑。

(3)TestThread.getOneUrl()获得要抓取的url地址,这里采用了synchronized关键字,因为多个线程同时获取url,可能线程不同步问题。

(4)后面都是具体抓取业务的逻辑代码。

 

3、测试类TestThread的实现:

package com.xing.thread;import java.util.ArrayList;
import java.util.List;public class TestThread {public static List<String> urlList = new ArrayList<String>();public static void init(List<String> listUrl) {if(listUrl==null){return ;}for (int i = 0; i < listUrl.size(); i++) {urlList.add(listUrl.get(i));}}synchronized public static String getOneUrl() {if (urlList.size() > 0)return (String) urlList.remove(0);elsereturn null;}/*** @param args*/public static void main(String[] args) {List<String> list = new ArrayList<String>();for(int i=550 ;i<650;i++){list.add("http://gkcx.eol.cn/schoolhtm/schoolSpecailtyMark/"+i+"/schoolSpecailtyMark.htm");}init(list);for (int i = 0; i < 10 ; i++) {Thread t = new ManyThread();t.start();}System.out.println("----------------------------------------------------");}
}

注释:(1)定义了静态变量urlList ,用来保存将要抓取的url。

(2)init()方法主要是向urlList 中添加url。

(3)getOneUrl()方法获取urlList 第一个url对象,并且在urlList 中移除这个对象,是为了下次能获取到新的url。

(4)main()方法测试逻辑代码,new ArrayList<String>()对象,并且向其中添加url地址,调用init()初始化urlList中的数据,开启十个线程,并且启动每个线程。

 

Ok!到这里多线程就搞完了,可以测试一下。




转载于:https://my.oschina.net/winHerson/blog/103782

http://www.lbrq.cn/news/2773207.html

相关文章:

  • 小x导航正品网站推广及seo方案
  • 深圳做网站的公司的区域成都百度seo优化公司
  • 高端的网站制作百度投放
  • 北京小型网站建设东莞关键字排名优化
  • 哪个网站能在百度做推广手机优化软件下载
  • 做电影资源网站违法吗外汇seo公司
  • sem算网站设计吗百度关键词刷排名教程
  • 做网站机构图用什么工具百度搜索风云榜
  • 做seo对网站推广有什么作用新东方在线教育平台官网
  • php学校网站系统英文谷歌seo
  • 网站全景看图怎么做seo专员是做什么的
  • 北京 网站建设 京icpseo自然优化排名技巧
  • 电子商务网站建设规划心得企业关键词排名优化网址
  • 镇江网站建设包括哪些seo服务合同
  • 珠海建站模板源码正在播网球比赛直播
  • 做360手机网站快网站推广软文范例
  • 做环保是跑还是网站卖大连网站优化
  • 给几个手机网站软件开发需要学什么
  • 网站布局怎么做市场营销策划方案3000字
  • 下载做ppt的动画片的好网站苹果aso优化
  • 如东做网站网站建设平台有哪些
  • 做轻淘客网站要多大的空间吉林网络seo
  • 网站建设赚钱流程易观数据
  • 什么网站可以做教师资格证的题公众号怎么引流推广
  • 企业网站建设规划的基本原则是什么湖北搜索引擎优化
  • wordpress 二次开发广州seo推广优化
  • 旅行网站排名前十名个人建网站的详细步骤
  • 做网站如何接单网络营销课程感悟
  • bootstrap响应式网站开发实战电商常用的seo工具推荐
  • e4a做网站品牌营销策划与管理
  • RocketMq消费者动态订阅topic
  • Apache IoTDB:大数据时代时序数据库选型的技术突围与实践指南
  • 从需求到部署全套方案:餐饮服务许可证数据可视化分析系统的大数据技术实战
  • 给纯小白的Python操作 PDF 笔记
  • Linux中聚合链路与软件网桥配置指南
  • AOP配置类自动注入