仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1114|回复: 18
打印 上一主题 下一主题

[学习教程] 发布一篇Daemon线程

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-18 11:35:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。
“Daemon”线程的感化是在程序的运转时代于背景供应一种“惯例”服务,但它其实不属于程序的一个基础部分。因而,一旦一切非Daemon线程完成,程序也会中断运转。相反,倘使有任何非Daemon线程仍在运转(好比另有一个正在运转main()的线程),则程序的运转不会中断。
经由过程挪用isDaemon(),可查询拜访一个线程是否是一个Daemon,并且能用setDaemon()翻开大概封闭一个线程的Daemon形态。假如是一个Daemon线程,那末它创立的任何线程也会主动具有Daemon属性。
上面这个例子演示了Daemon线程的用法:
  1. //:Daemons.java
  2. //Daemonicbehavior
  3. importjava.io.*;
  4. classDaemonextendsThread{
  5. privatestaticfinalintSIZE=10;
  6. privateThread[]t=newThread[SIZE];
  7. publicDaemon(){
  8. setDaemon(true);
  9. start();
  10. }
  11. publicvoidrun(){
  12. for(inti=0;i<SIZE;i++)
  13. t[i]=newDaemonSpawn(i);
  14. for(inti=0;i<SIZE;i++)
  15. System.out.println(
  16. "t["+i+"].isDaemon()="
  17. +t[i].isDaemon());
  18. while(true)
  19. yield();
  20. }
  21. }
  22. classDaemonSpawnextendsThread{
  23. publicDaemonSpawn(inti){
  24. System.out.println(
  25. "DaemonSpawn"+i+"started");
  26. start();
  27. }
  28. publicvoidrun(){
  29. while(true)
  30. yield();
  31. }
  32. }
  33. publicclassDaemons{
  34. publicstaticvoidmain(String[]args){
  35. Threadd=newDaemon();
  36. System.out.println(
  37. "d.isDaemon()="+d.isDaemon());
  38. //Allowthedaemonthreadstofinish
  39. //theirstartupprocesses:
  40. BufferedReaderstdin=
  41. newBufferedReader(
  42. newInputStreamReader(System.in));
  43. System.out.println("WaitingforCR");
  44. try{
  45. stdin.readLine();
  46. }catch(IOExceptione){}
  47. }
  48. }///:~
复制代码
Daemon线程可将本人的Daemon标志设置成“真”,然后发生一系列其他线程,并且以为它们也具有Daemon属性。随后,它进进一个无穷轮回,在个中挪用yield(),保持对其他历程的把持。在这个程序初期的一个版本中,无穷轮回会使int计数器增值,但会使全部程序都好象堕入停留形态。换用yield()后,却可以使程序充斥“活气”,不会令人发生停止或反响愚钝的感到。
一旦main()完成本人的事情,便没有甚么能制止程序中止运转,由于这里运转的只要Daemon线程。以是能看到启动一切Daemon线程后显现出来的了局,System.in也举行了响应的设置,使程序中止前能守候一个回车。假如不举行如许的设置,就只能看到创立Daemon线程的一部分了局(尝尝将readLine()代码换成分歧长度的sleep()挪用,看看会有甚么体现)。
从一个编程语言的普及程度来将,一个好的IDE是至关中要的,而现在的java的IDE虽然已经很好了,但是和.net网页编程比起来还是稍微差一些的,这是个客观事实。java要想普及的更好。DE是必须加以改进的。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-21 10:35:31 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-21 20:52:17 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
山那边是海 该用户已被删除
地板
发表于 2015-1-22 12:40:19 来自手机 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
只想知道 该用户已被删除
5#
发表于 2015-1-27 10:07:07 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
admin 该用户已被删除
6#
发表于 2015-2-5 04:43:22 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
柔情似水 该用户已被删除
7#
发表于 2015-2-6 14:04:06 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
再见西城 该用户已被删除
8#
发表于 2015-2-6 19:20:02 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
简单生活 该用户已被删除
9#
发表于 2015-2-26 05:36:42 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
小女巫 该用户已被删除
10#
发表于 2015-3-2 09:55:56 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
若相依 该用户已被删除
11#
发表于 2015-3-5 17:28:15 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
蒙在股里 该用户已被删除
12#
发表于 2015-3-12 11:01:03 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
因胸联盟 该用户已被删除
13#
发表于 2015-3-13 04:09:38 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
若天明 该用户已被删除
14#
发表于 2015-3-17 20:10:24 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
深爱那片海 该用户已被删除
15#
发表于 2015-3-21 18:24:34 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
第二个灵魂 该用户已被删除
16#
发表于 2015-4-1 10:52:03 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
海妖 该用户已被删除
17#
发表于 2015-4-1 19:11:18 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
透明 该用户已被删除
18#
发表于 2015-4-16 03:11:15 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
谁可相欹 该用户已被删除
19#
发表于 2015-4-21 12:23:07 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 23:51

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表