蒙在股里 发表于 2015-1-18 11:33:58

来看java利用回协调线程处置一个耗时呼应全历程

关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。
如今程序中有很多触及长耗时呼应历程的处置,好比会见WebService,远程挪用,庞大处置等,假如我们利用间接按次实行的体例举行处置有大概招致界面停留,呼应中断,无谓守候等缺点,这是不该该的。
一个耗时呼应历程应当接纳回协调线程来处置,详细就是把本来的按次实行修正为异步体例,并让被挪用者挪用挪用者以取得实行了局。在附件的例子中,Viewer就是挪用者,它代表界面,而LongTimeResponse是被挪用者,它外部用线程启动一个耗时历程,实行终了再关照挪用者。
Viewer类代码以下:
publicclassViewer{
  privateintcount;
  
  publicViewer(intcount){
    this.count=count;
  }
  
  publicvoidprintNewCount(intnewCount){
    System.out.println("NewCount="+newCount);
  }
  publicintgetCount(){
    returncount;
  }
  publicvoidsetCount(intcount){
    this.count=count;
  }
}LongTimeResponse类代码以下,能够看出,它之以是能回调挪用者,是由于其外部有挪用者的援用viewer,在其机关函数中viewer被赋上了值:
packagecom.sitinspring;
publicclassLongTimeResponseimplementsRunnable{
  privateViewerviewer;
  privateintcount;
  
  publicLongTimeResponse(Viewerviewer){
    this.viewer=viewer;
    this.count=viewer.getCount();
    
    caculateNewCount();
  }
  
  privatevoidcaculateNewCount(){
    Threadthread=newThread(this);
    thread.start();
  }
  
  publicvoidrun(){
    try{
      Thread.sleep(10000);  
    }
    catch(Exceptionex){
      ex.printStackTrace();
    }
    
    viewer.printNewCount(count*count*count);
  }
}挪用历程以下:
Viewerviewer=newViewer(10);
LongTimeResponselongTimeResponse=newLongTimeResponse(viewer);
viewer.printNewCount(123);
实行起来能够看出,程序先输入了
NewCount=123
过了十秒,才输入:
NewCount=1000
这申明,程序是异步实行的,耗时历程没有影响到骨干程序的运转,而耗时历程完成后,才把前往了局关照了挪用者,骨干程序没有遭到耗时历程的影响,因而也就不会招致界面停留,呼应中断,无谓守候等缺点。
以上就是利用回协调线程处置一个耗时呼应的全部历程。

JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。

冷月葬花魂 发表于 2015-1-24 13:45:58

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

再见西城 发表于 2015-2-1 16:13:07

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

飘飘悠悠 发表于 2015-2-5 02:27:07

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

小魔女 发表于 2015-2-7 19:24:23

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

若相依 发表于 2015-2-23 05:46:46

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。

莫相离 发表于 2015-3-7 05:39:14

是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言

若天明 发表于 2015-3-10 06:42:53

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

只想知道 发表于 2015-3-15 14:14:39

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

admin 发表于 2015-3-21 13:21:46

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

蒙在股里 发表于 2015-3-24 13:30:23

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

金色的骷髅 发表于 2015-3-30 09:51:43

是一种为 Internet发展的计算机语言

灵魂腐蚀 发表于 2015-4-1 03:09:32

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

分手快乐 发表于 2015-4-16 08:10:43

Java 编程语言的风格十分接近C、C++语言。

第二个灵魂 发表于 2015-4-21 05:57:14

是一种突破用户端机器环境和CPU

谁可相欹 发表于 2015-6-19 17:20:30

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

愤怒的大鸟 发表于 2015-7-7 08:02:03

Java是一种计算机编程语言,拥有跨平台、面向对java

山那边是海 发表于 2015-7-10 20:29:48

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

透明 发表于 2015-9-27 14:59:34

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

飘灵儿 发表于 2015-10-27 04:36:14

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
页: [1]
查看完整版本: 来看java利用回协调线程处置一个耗时呼应全历程