|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还是要自己一点一点写代码,然后编译,改错再编译好那。还有最重要的是.net网页编程的编译环境非常好,你甚是不需要了解太多工具,对于简单的系统,你可以之了解一些语法就哦了。
在B2B(企业对企业)使用中XML饰演一个主要的脚色。在这些使用中接纳SimpleAPIforXML(SAX)大概document.nbspObjectModel(DOM)剖析器来剖析xml文件。(这两个剖析器都是java的api,他们能够鄙人面的附录中找到)在一个单线程使用中剖析是复杂了然的。可是,在多线程的使用中这就是很庞大和具有应战性了,好比说做一个使用服务器,由于使用常常会为剖析xml创立一个专门的线程,剖析的数据用来为很多同时并发运转的线程服务。这篇文章形貌了一个在并发使用中的xml的剖析完成。
计划办法
基于并发的临盆和消耗计划观点,一个专门的线程作为一个临盆者往剖析xml。一组线程作为消耗者,作为剖析xml数据的临盆线程,他把数据存储在一个共享的数据布局中以供消耗线程在未来举行处置时获得,为了最年夜化发生数据的才能同时最小化内存的利用,这个计划利用了一个出格的行列来分离为临盆者、消耗者存储和找到剖析的数据.
奇妙的行列(SmartQueuing)
SmartQueue行列类供应给临盆消耗线程们行列的功效,他次要的义务是保护行列避免(线程)超载和断流。换句话说,SmartQueue接纳保护一个流动长度的行列的办法往坚持资本的使用效力。他挂起和叫醒得当的线程在得当的时分,打个例如,假如没有添补数据的空间,行列将挂起临盆线程直到一个消耗线程从行列里移往一项。
上面的SmartQueue代码片段展现了这类战略的完成。
publicsynchronizedvoidput(Objectdata){
//checktoseeifthelengthis2
while(list.size()>=2){
try{
System.out.println("Waitingtoputdata");
wait();
}
catch(Exceptionex){
}
}
list.add(data);
notifyAll();
}
publicsynchronizedObjecttake(){
//waituntilthereisdatatoget
//comeoutiftheendoffilesignaled
while(list.size()<=0&&(eof!=true)){
try{
System.out.println("Waitingtoconsumedata");
wait();
}catch(Exceptionex){
}
}
Objectobj=null;
if(list.size()>0){
obj=list.remove(0);
}else{
System.out.println("Wokeupbecauseendofdocument.quot;);
}
notifyAll();
returnobj;
}
<p>
你精通任何一门语言就最强大。现在来看,java的市场比C#大,C#容易入手,比较简单,java比较难 |
|