怎么在java中實(shí)現(xiàn)一個(gè)多線程爬蟲?很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)伍家崗,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
Java主要應(yīng)用于:1. web開發(fā);2. Android開發(fā);3. 客戶端開發(fā);4. 網(wǎng)頁開發(fā);5. 企業(yè)級(jí)應(yīng)用開發(fā);6. Java大數(shù)據(jù)開發(fā);7.游戲開發(fā)等。
一、java多線程實(shí)現(xiàn)方式
繼承Thread類、實(shí)現(xiàn)Runnable接口、使用ExecutorService、Callable、Future實(shí)現(xiàn)有返回結(jié)果的多線程。
繼承Thread類、實(shí)現(xiàn)Runnable接口方式線程執(zhí)行完后都沒有返回值
使用ExecutorService、Callable、Future是帶返回值的。
二、實(shí)現(xiàn)java多線程爬蟲:在for循環(huán)中讓每個(gè)子線程都執(zhí)行RunThread類中的run方法
1、創(chuàng)建一個(gè)收集線程的列表
package multithreading;import java.util.ArrayList;import java.util.List;/** * Created by hg_yi on 17-6-13. * * 線程計(jì)數(shù)器是一個(gè)共享變量 */public class MultithreadCrawler{ public static void main(String[] args) throws InterruptedException { //創(chuàng)建一個(gè)收集線程的列表 ListthreadList = new ArrayList ();
2、創(chuàng)建線程的個(gè)數(shù)
int threadNum = 5; RunThread run = new RunThread(); run.setThreads(threadNum);
3、創(chuàng)建5個(gè)線程,并對其進(jìn)行收集
for (int i = 0; i < threadNum; i++) { Thread thread = new Thread(run); thread.start(); threadList.add(thread); }
4、main線程需要等待所有子線程退出
Thread.currentThread().join(); } }
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。