了解下JAVA的从线程承继(java)
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。为创立一个线程,最复杂的办法就是从Thread类承继。这个类包括了创立和运转线程所需的统统工具。Thread最主要的办法是run()。但为了利用run(),必需对其举行过载大概掩盖,使其能充实按本人的交托行事。因而,run()属于那些会与程序中的其他线程“并发”或“同时”实行的代码。
上面这个例子可创立恣意数目的线程,并经由过程为每一个线程分派一个举世无双的编号(由一个静态变量发生),从而对分歧的线程举行跟踪。Thread的run()办法在这里失掉了掩盖,每经由过程一次轮回,计数就减1——计数为0时则完成轮回(此时一旦前往run(),线程就中断运转)。
//:SimpleThread.java
//VerysimpleThreadingexample
publicclassSimpleThreadextendsThread{
privateintcountDown=5;
privateintthreadNumber;
privatestaticintthreadCount=0;
publicSimpleThread(){
threadNumber=++threadCount;
System.out.println("Making"+threadNumber);
}
publicvoidrun(){
while(true){
System.out.println("Thread"+
threadNumber+"("+countDown+")");
if(--countDown==0)return;
}
}
publicstaticvoidmain(String[]args){
for(inti=0;i<5;i++)
newSimpleThread().start();
System.out.println("AllThreadsStarted");
}
}///:~
run()办法几近一定含有某种情势的轮回——它们会一向延续到线程不再必要为止。因而,我们必需划定特定的前提,以便中止并加入这个轮回(大概在上述的例子中,复杂地从run()前往便可)。run()一般接纳一种无穷轮回的情势。也就是说,经由过程制止内部收回对线程的stop()大概destroy()挪用,它会永久运转下往(直到程序完成)。
在main()中,可看到创立并运转了大批线程。Thread包括了一个特别的办法,叫作start(),它的感化是对线程举行特别的初始化,然后挪用run()。以是全部步骤包含:挪用构建器来构建对象,然后用start()设置线程,再挪用run()。假如不挪用start()——假如得当的话,可在构建器那样做——线程便永久不会启动。
上面是该程序某一次运转的输入(注重每次运转城市分歧):
Making1
Making2
Making3
Making4
Making5
Thread1(5)
Thread1(4)
Thread1(3)
Thread1(2)
Thread2(5)
Thread2(4)
Thread2(3)
Thread2(2)
Thread2(1)
Thread1(1)
AllThreadsStarted
Thread3(5)
Thread4(5)
Thread4(4)
Thread4(3)
Thread4(2)
Thread4(1)
Thread5(5)
Thread5(4)
Thread5(3)
Thread5(2)
Thread5(1)
Thread3(4)
Thread3(3)
Thread3(2)
Thread3(1)可注重到这个例子中各处都挪用了sleep(),但是输入了局指出每一个线程都取得了属于本人的那一部分CPU实行工夫。从中能够看出,只管sleep()依附一个线程的存在来实行,但却与同意或克制线程有关。它只不外是另外一个分歧的办法罢了。
亦可看出线程并非按它们创立时的按次运转的。现实上,CPU处置一个现有线程集的按次是不断定的——除非我们亲身参与,并用Thread的setPriority()办法调剂它们的优先级。
main()创立Thread对象时,它并未捕捉任何一个对象的句柄。一般对象关于渣滓搜集来讲是一种“公允比赛”,但线程却并不是云云。每一个线程城市“注册”本人,以是某处实践存在着对它的一个援用。如许一来,渣滓搜集器便只好对它“瞠目以对”了。
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包...... 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 是一种将安全性(Security)列为第一优先考虑的语言 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 是一种突破用户端机器环境和CPU 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 是一种为 Internet发展的计算机语言 是一种语言,用以产生「小应用程序(Applet(s)) 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
页:
[1]
2