今天给各位分享三星note2论坛的知识,其中也会对电脑资讯进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文导读目录:
2、symbian模拟器(S60 3rd Edition FP1 SDK for Symbian OS的模拟器怎么注册,或者破解)
3、麒麟980和骁龙845跑分(骁龙845和麒麟980处理器哪个好)
heritrix(Heritrix的多线程ToeThread和ToePoo l
本文目录Heritrix的多线程ToeThread和ToePoolHeritrix的多线程ToeThread和ToePool想要更有效更快速的抓取网页内容则必须采用多线程Heritrix中提供了一个标准的线程池ToePool它用于管理所有的抓取线程ToePool和ToeThread都位于archivecrawlerframework包中前面已经说过ToePool的初始化是在CrawlController的initialize()方法中完成的来看一下ToePool以及ToeThread是如何被初始化的以下代码是在CrawlController中用于对ToePool进行初始化的???构造函数toePool=newToePool(this);???//按orderxml中的配置实例化并启动线程???toePoolsetSize(ordergetMaxToes());ToePool的构造函数很简单如下所示publicToePool(CrawlControllerc){????super(ToeThreads);????ntroller=c;???}它仅仅是调用了父类javalangThread Group的构造函数同时将注入的CrawlController赋给类变量这样便建立起了一个线程池的实例了但是那些真正的工作线程又是如何建立的呢,下面来看一下线程池中的setSize(int)方法从名称上看这个方法很像是一个普通的赋值方法但实际上它并不是那么简单publicvoidsetSize(intnewsize)???{????targetSize=newsize;????intdifference=newsizegetToeCount();//如果发现线程池中的实际线程数量小于应有的数量????//则启动新的线程????if(difference》){?????????for(inti=;i《=difference;i++){??????????//启动新线程?????????????startNewThread();?????}????}????//如果线程池中的线程数量已经达到需要????else????{intretainedToes=targetSize;?????????//将线程池中的线程管理起来放入数组中?????????Threadtoes=thisgetToes();//循环去除多余的线程?????????for(inti=;i《toeslength;i++){?????????????if(!(toes;?????????????ttretire();?????????}????}???}//用于取得所有属于当前线程池的线程???privateThreadtoes)方法时????//实际上是将所有该ThreadGroup中开辟的线程放入????//toes这个数组中以备后面的管理????thisenumerate(toes);????returntoes;???}//开启一个新线程???privatesynchronizedvoidstartNewThread()???{????ToeThreadnewThread=newToeThread(thisnextSerialNumber++);????newThreadsetPriority(DEFAULT_TOE_PRIORITY);????newThreadstart();???}通过上面的代码可以得出这样的结论线程池本身在创建的时候并没有任何活动的线程实例只有当它的setSize方法被调用时才有可能创建新线程如果当setSize方法被调用多次而传入不同的参数时线程池会根据参数里所设定的值的大小来决定池中所管理线程数量的增减???当线程被启动后所执行的是其run()方法中的片段接下来看一个ToeThread到底是如何处理从Frontier中获得的链接的publicvoidrun()???{????Stringname=controllergetOrder()getCrawlOrderName();????loggerfine(getName()+startedfororder+name+);try{?????while(true)?????{?????????????//检查是否应该继续处理??????continueCheck();??????setStep(STEP_ABOUT_TO_GET_URI);?????????????//使用Frontier的next方法从Frontier中?????????????//取出下一个要处理的链接?????????????CrawlURIcuri=controllergetFrontier()next();?????????????//同步当前线程?????????????synchronized(this){?????????????????continueCheck();?????????????????setCurrentCuri(curi);?????????????}/*??????????????*处理取出的链接??????????????*/?????????????processCrawlUri();?????????????setStep(STEP_ABOUT_TO_RETURN_URI);?????????????//检查是否应该继续处理?????????????continueCheck();?????????????//使用Frontier的finished()方法?????????????//来对刚才处理的链接做收尾工作?????????????//比如将分析得到的新的链接加入?????????????//到等待队列中去?????????????synchronized(this){?????????????????controllergetFrontier()finished(currentCuri);?????????????????setCurrentCuri(null);?????????????}//后续的处理?????????????setStep(STEP_FINISHING_PROCESS);????????????三星note2论坛(电脑资讯)?lastFinishTime=SystemcurrentTimeMillis();?????????//释放链接?????????????controllerreleaseContinuePermission();?????????????if(shouldRetire){?????????????????break;//fromwhile(true)?????????????}?????????}????}catch(EndedExceptione){????}catch(Exceptione){????????loggerlog(LevelSEVEREFatalexceptionin+getName()e);????}catch(OutOfMemoryErrorerr){????????seriousError(err);????}finally{????????controllerreleaseContinuePermission();????}????setCurrentCuri(null);//清理缓存数据????this();????thisRecorder=null;????localProcessors=null;lishixinzhi/Article/program/Java/ky//。
Heritrix的多线程ToeThread和ToePool
电脑资讯symbian模拟器(SrdEditionFPSDKforSymbianOS的模拟器怎么注册,或者破解
三星note2论坛(电脑资讯)SrdEditionFPSDKforSymbianOS的模拟器怎么注册,或者破解
那你试试离线注册方式,就是在模拟器的注册向导里选择“无Inter连接”,然后把它给的串号贴到下面的网页的框里,再按按钮获取注册码。
电脑资讯麒麟和骁龙跑分(骁龙和麒麟处理器哪个好
骁龙和麒麟处理器哪个好
麒麟采用了更加先进的台积电nm工艺,而骁龙采用的是台积电上一代的nm工艺,因此在制程工艺上,麒麟应该更加先进,比骁龙领先了一代左右,更先进的制程工艺可以获得更低的功耗,更高的能效比,因此整体性能也会增加。
麒麟的CPU采用了arm公司更先进的a架构,而骁龙采用的是上一代的a架构,a架构在性能上远超上一代的a架构,在geekbench跑分中要比上一代的a架构要强%左右,麒麟的跑分也要比骁龙更高,不管是geekbench单核还是多核,都要强不少三星note2论坛(电脑资讯)。因此在CPU的性能上麒麟远超骁龙。CPU性能越好,日常使用就会越流畅,麒麟在日常使用的流畅度上,比骁龙要强不少,打开各种应用的速度都要更快。
三星note2论坛的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于电脑资讯、三星note2论坛的信息别忘了在本站进行查找喔。