来看Java多线程:“基本篇”08之join()
还是要自己一点一点写代码,然后编译,改错再编译好那。还有最重要的是.net的编译环境非常好,你甚是不需要了解太多工具,对于简单的系统,你可以之了解一些语法就哦了。1.join()先容
join()界说在Thread.java中。
join()的感化:让“主线程”守候“子线程”停止以后才干持续运转。这句话大概有点流畅,我们仍是经由过程例子往了解:
//主线程
publicclassFatherextendsThread{
publicvoidrun(){
Sons=newSon();
s.start();
s.join();
...
}
}
//子线程
publicclassSonextendsThread{
publicvoidrun(){
...
}
}申明:
下面的有两个类Father(主线程类)和Son(子线程类)。由于Son是在Father中创立并启动的,以是,Father是主线程类,Son是子线程类。
在Father主线程中,经由过程newSon()新建“子线程s”。接着经由过程s.start()启动“子线程s”,而且挪用s.join()。在挪用s.join()以后,Father主线程会一向守候,直到“子线程s”运转终了;在“子线程s”运转终了之后,Father主线程才干接着运转。这也就是我们所说的“join()的感化,是让主线程会守候子线程停止以后才干持续运转”!
2.join()源码剖析(基于JDK1.7.0_40)
publicfinalvoidjoin()throwsInterruptedException{
join(0);
}
publicfinalsynchronizedvoidjoin(longmillis)
throwsInterruptedException{
longbase=System.currentTimeMillis();
longnow=0;
if(millis<0){
thrownewIllegalArgumentException("timeoutvalueisnegative");
}
if(millis==0){
while(isAlive()){
wait(0);
}
}else{
while(isAlive()){
longdelay=millis-now;
if(delay<=0){
break;
}
wait(delay);
now=System.currentTimeMillis()-base;
}
}
}申明:
从代码中,我们能够发明。当millis==0时,会进进while(isAlive())轮回;即只需子线程是活的,主线程就一直的守候。
我们依据下面注释join()感化时的代码来了解join()的用法!
<p>
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 是一种语言,用以产生「小应用程序(Applet(s)) 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 是一种使用者不需花费很多时间学习的语言 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
页:
[1]