|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉,
接深切浅出多线程(2)在多线程交互的中,常常有一个线程必要失掉另个一线程的盘算了局,我们经常使用的是Future异步形式来加以办理。
甚么是Future形式呢?Future望文生义,在金融行业叫期权,市场上有看跌期权和看涨期权,你能够在如今(好比玄月份)购置岁尾(十仲春)的石油,假如你买的是看涨期权,那末假如石油真的涨了,你也能够在十仲春份按照玄月份约定的代价购置。扯远了,Future就是你能够拿到将来的了局。关于多线程,如果线程A要守候线程B的了局,那末线程A没需要守候B,直到B有了局,能够先拿到一个将来的Future,等B有了局是再取实在的了局。实在这个形式用的良多,好比扫瞄器下载图片的时分,刚入手下手是否是经由过程含混的图片来取代最初的图片,等下载图片的线程下载完图片后在交换。如图所示:
在没有JDK1.5供应的Concurrent之前,我们经由过程自界说一个了局类,卖力结果持有。
以下面代码:
packagevincent.blogjava.net;
publicclassFutureResult{
privateStringresult;
privatebooleanisFinish=false;
publicStringgetResult(){
returnresult;
}
publicsynchronizedvoidsetResult(Stringresult){
this.result=result;
this.isFinish=true;
}
publicsynchronizedbooleanisFinish(){
returnisFinish;
}
}
存储了局值和是不是完成的Flag。
packagevincent.blogjava.net;
publicclassGenerateResultThreadextendsThread{
FutureResultfr;
publicGenerateResultThread(FutureResultfr){
this.fr=fr;
}
publicvoidrun(){
//仿照大批耗时盘算后(5s)前往了局。
try{
System.out.println("GenerateResultThread入手下手举行盘算了!");
Thread.sleep(5000);
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
fr.setResult("ResultByGenerateResultThread");
}
}
<p>
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。 |
|