首页 相关文章 用J2SE1.5建立多任务的Java应用程序2

用J2SE1.5建立多任务的Java应用程序2

Future和FutureTask

在Java的早期版本中,查询运行中的线程状态,以及使线程在执行之后返回一个值是非常困难的。由于run(运行)方法返回void,你必须编写大量的代码从线程中返回一个值。使用过这种方法的程序员肯定了解其痛苦的经历。

你可以使用Future接口或者FutureTask类从异步执行的线程中得到一个返回值。Future接口提供了检查计算过程是否完成、检索计算结果或终止计算过程的一些方法。FutureTask类提供了Future接口方法的基本实现(implementation)。只有计算过程完成以后才能检索结果;假如计算过程没有完成,get方法会被阻塞(block)。

下载代码中的MyStringReverser.java文件演示了FutureTask类的使用,并提供了一个轻易理解的示例。它以每秒钟一个字符的速度从后向前显示提交的字符串,同时主线程检测事务是否完成了:

while(!future.isDo...[ 查看全文 ]

2016-02-19 标签:
  • 标签:Java JAVA基础
    说起注解语法,对于任何一个Java开发人员来说都已经耳熟能详了,我们每天都在使用着 @author, @param,等等编写注释,然后用javadoc生成文档。Java的这种方便的文档生成方法受到了开发者的普遍赞誉。而从JDK1.5开始,注释语法提供了更为强大的功能。 我们先谈谈注释语法本身,它有时候也称为meta-data :“描述数据的数据” 。一般来说它们可以被用来生成文档,检查代码间依赖关系,帮助...[ 查看全文 ]
  • 标签:ASP
      让我们先分析一下客户端/服务器应用程序。在一个标准的客户端/服务器应用程序中,在应用程序开始时,你能够初始化数据库连接字符串,这就意味着,客户有使用数据库连接字符串的权利,这包括用户名和口令。但是客观情况如果不允许你在网络上发送这些信息的话,你就必需在不联接数据库的情况下直接从客户端取得数据发送给客户。那么解决方案之一就是在服务器上创建一个ASP页(在本例中称为getData.asp)...[ 查看全文 ]
  • 本文是另外一篇文章《如何才算把握Java(J2SE篇)》(后面简称标准篇)的姊妹篇,提出了标准,但是不告诉新手如何才能达到那个标准似乎说不过去。 首先需要说的是达到这个标准是比较困难的,没有三年的时间一般是不可能的,没有实际的项目的经验的熏陶也是不可能的,下文会说明为什么。然后给出两个宝典:一个就是TIJ(Thinking in Java),另外一个就是chm格式的JDK的API。 TIJ可以看看(javaresearch....[ 查看全文 ]
  • 标签:Java JAVA基础
    本技巧将向您讲述如何编写可通过代理访问因特网上的Web服务器的Java应用程序。在Java应用程序中加入代理支持只需额外编写几行代码,且不依赖任何安全性“漏洞”。 几乎所有的公司都十分关注保护自己的内部网络,以防黑客及入窃者。一种常见的安全措施是完全断开与因特网的连接。如果黑客们不能连接到您的任何一台机器,他们就不能非法进入您的系统。这种策略产生的不利副作用是,内部用户...[ 查看全文 ]
  • 在这个数组内部,CWorker 类创建了 CWorkerThread类的一个实现版 本。CWorkerThread 类(将在下面讨论)是一个必须继承的抽象类。导出 类定义了消息的处理方式: aThreads = new ArrayList(); for (int idx=0; idx〈sfWorker.NumberThreads; idx++) { WorkerThreadFormatter wfThread = new WorkerThreadFormatter(); wfThread.ProcessName = sfWorker.ProcessName; wfThread.ProcessDesc = ...[ 查看全文 ]
  • 我们还是采用Tomcat作为web服务器,如果你对如何使用tomcat还不熟悉请参考相关资料。通常我们开发WAP应用程序的时候都是手写wml脚本,其实我们可以借助java的Servlet/jsp技术开发WAP应用程序。通常我都是使用Lomboz插件在eclipse的环境下写servlet/jsp文件的。先看下面的waptest.jsp文件和WapServlet.java文件 <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://ww...[ 查看全文 ]
  • 标签:Java JAVA基础
    合成图像 您不必从文件中读取所有的图像 — 您可以创建自己的图像。要创建自己的图像,最灵活的方法是用一个 BufferedImage 对象,它是 Image 类的一个子类,它把图像数据存储在一个可以被访问的缓冲区中。它还支持各种存储像素数据的方法:使用或不使用 alpha 通道、不同种类的颜色模型以及颜色组件的各种精确度。ColorModel 类提供一种灵活的方法定义各种颜色模型,以和 BufferedIma...[ 查看全文 ]
  • 标签:Java JAVA基础
    Java语言的声望和它在桌面应用程序(GUI程序)所取得的成就显然极不相符,至今仍然很少能看到非常成功Java桌面程序。虽然有JBuilder,Netbean,JProbe等大型软件作为代表,但这仍不能证明Java的GUI程序是成功的:它们的外观总是和同一操作系统平台下的其它软件显得格格不入。对机器配置的需求也似乎永无止境,这使得它们只能被一些总是拥有当前最高性能PC的程序员们所容忍,或是那些不在乎金钱...[ 查看全文 ]
  • 标签:flash教程
    第3节、制作练习场景 效果如图1 所示 制作过程: 1.新增一个名为 typeSpaceMovie 的电影剪辑 2.在 typeSpaceMovie 新增一图层,添加两个文字区域 /:text1 和 /:text2 . 并设置他们的大小, 和字体,字符大小完全一样。 在变量名前加 /: 表示这是告诉这个变量在主 TimeLine 中也是可用的,而不仅仅是typeSpaceMovie 电影剪辑中的局部变量。 第3节.制作练习场景 效果如图1 ...[ 查看全文 ]
  • 标签:ASP
      假设在我们前面所说的例子中,我们想在应用程序中显示区域的左半边显示客户的姓名列表,再在每个客户姓名后面加上两个链接:Purchase History和Recent Purchase。当用户点击其中的一个链接,客户程序就会运行一个存储过程并在右边区域显示出结果。 为了显示这个想法的灵活性,我想让用于返回数据的三个操作单元执行不同的工作过程,它们都调用getData.asp。首先,通过调用CustOrderHist来运行一个存储...[ 查看全文 ]
  • 标签:ASP
      在个人电脑上使用单机版应用软件的时代很快就要过去了,现在大部分的应用程序都开发出网络版或大都需要共享网络上丰富的数据资源。我们虽然写了很长时间基于客户端/服务器的应用程序,但是这些程序大部分只是运行在小型的局域网内部。然而,有很多客观的原因要求我们要修改这些程序以使它们能够运行在一个企业的内部网甚至是国际互联网。 是什么原因迫使我们做呢?首先,随着一个企业的规模逐渐...[ 查看全文 ]
  • 标签:ASP
      前面我们已经介绍了使用ASP和XML混合编程,那是因为ASP页面能够很容易让我们看清应用程序正在做什么,但是你如果你不想使用ASP的话,你也可以使用任何你熟悉的技术去创建一个客户端程序。下面,我提供了一段VB代码,它的功能和ASP页面一样,也可以显示相同的数据,但是这个VB程序不会创建发送到服务器的XML字符串。它通过运行一个名叫Initialize的存储过程,从服务器取回XML字符串,来查询ClientComma...[ 查看全文 ]
  • 标签:Web开发
    jce.jar security/US_export_policy.jar security/local_policy.jar ext/sunjce_provider.jar Java运行时会自动加载这些包,因此对于带main函数的应用程序不需要设置到CLASSPATH环境变量中。对于WEB应用,不需要把这些包加到WEB-INF/lib目录下。 以下是java中调用sun公司提供的3DES加密解密算法的样本代码: 代码如下: /*字符串 DESede(3DES) 加密*/ import java.security.*; import javax.crypto.*...[ 查看全文 ]
  • 标签:ASP
      本文介绍了三层结构应用程序的概念和优点,并结合一个实例介绍了如何建立三层结构的ASP应用程序。 一、两层结构的ASP应用有何缺点 在Browser/Server 应用程序开发领域,微软公司的IIS/ASP以其强大的功能,良好的扩展能力,及与其它微软产品的一致性,迅速地流行起来。它能使一个具有VB/VC经验的程序员,很快地成为一个Web程序员,开发出看上去非常专业的应用。但是,ASP有一个天生的缺点...[ 查看全文 ]
  • 标签:Java JAVA基础
    Java 平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的 Java 应用程序的过程变得相当复杂。在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使Java 应用程序可以使用 USB 设备的 API 而使这个过程变得更容易。虽然这两个项目仍然处于萌芽状态,但是它们都显示了良好的前景,并已经成为一些实用应用程序的基础。 通用串行总线(Universal ...[ 查看全文 ]
  • 标签:PHP
      PHP功能的另外一个优势是其调用已有Java对象方法的能力。通过此项功能可将PHP集成进已有的基于Java的应用程序。如果你正在工作场合推广PHP ,这项功能尤其显得时髦。“Java无处不在。” 为实现此功能,你需要在服务器上安装Java虚拟机(JVM)。如果你将安装(或已安装)来自Sun、Kaffe、IBM或Blackdown的JDK,则可以迅速开始工作。   当配置PHP时,需要对配置指令增加--with-java参数,然后修...[ 查看全文 ]
  • 标签:ASP
    3、设置不同子目录下应用程序的数据库链接  这是一个很有意思的方法,在设置前,先说明一下它的用途:  如果在一个虚拟目录下有多个子目录,每一个子目录下下的web应用程序都需要连接不同的数据库,这如何做呢??  一种方法是在每一个子目录下分别建立一个web.config,用它来设置这个目录下的数据库连接。但这种方法的问题是需要维护每一个了目录下的web.config。  方法二,是只在...[ 查看全文 ]
  • 标签:Delphi
    笔者在前一段的工作中,需要开发一套简单的网络数据传输程序。由于平时常用Delphi做点开发,故此次也不例外。Delphi 7中带有两套TCP Socket组件:Indy Socket组件(IdTCPClient和IdTCPServer)和Delphi原生的TCP Socket组件(ClientSocket和ServerSocket)。但是,Borland已宣称ClientSocket和ServerSocket组件即将被废弃,建议用相应的Indy组件来代替。因此,笔者使用了Indy。本文在对Indy进行简要介...[ 查看全文 ]
  • 使用微软正在推行的.NET技术和C#语言可以快速建立Web应用程序,其安全性和可升级性都大大胜过普通的ASP应用程序。在这篇文章里,我们将使用.NET和C#一步一步的建立一个应用程序。 系统需求: Internet Explorer 5.5 Windows 2000 Professional, Server 或 Advanced Server ASP+/Microsoft .NET (预览版可以在 http://msdn.microsoft.com/net 下载) SQL Server 7.0 + SP1 或更高版本 使用微...[ 查看全文 ]
  • 标签:Java JAVA基础
    一个完整的Java应用程序,通常至少要有一个应用程序的结束点。对于一般程序来说,系统开发者根据需要和个人的偏好,会在程序结束位置,通过添加System.exit(0),或System.out(-1),来结束程序,或不加这些指令,让程序自然运行到结束。 如:下列典型代码 package untitled14; /** * This application is to demo how an applcation end */ public class Test...[ 查看全文 ]
手机页面 收藏网站 回到头部