动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
.Hibernate的一对一关系.
.Sun重整旗鼓 软件开源收购三大主.
.Servlet容器工作原理.
.Java更新XML的四种常用方法简介(.
.JAVA链接DB2数据库的例子.
.Java 库的建立方法及其实例(6).
.Flex与Servlet通讯(上)。.
.Applet加载Java应用程序.
.Cocoon2的安装.
.彻底明白Java的多线程-实现多线程.
.使用反射机制确定基本数据类型属.
.Spring Framework中的面向方面编.
.WebLogic7中的JDBC Pool的配置.
.经典Java开发工具介绍(4):Bor.
.Java Swing入门基础.
.死锁.
.VJ6.0的使用方法(4)Application调.
.Java: JNI完全手册.
.java以及其相关性应用.
.运用反射实现ejb动态委派.

如果我是国王:关于解决 Java 编程语言线程问题的建议

发表日期:2008-1-5 |



  Allen Holub

自由撰稿人
内容:
task(任务) 的概念
synchronized 要害字
wait 和 notify 方法
修定 thread 类
线程间的协作
读写锁
部分创建的对象
volatile 要害字
访问的问题
后台程序的忽然结束
重新引入 stop、suspend 和 resume
被阻断的 I/O
threadGroup 类
总结
参考资料
作者简介

Allen Holub 指出,Java 编程语言的线程模型可能是此语言中最薄弱的部分。它完全不适合实际复杂程序的要求,而且也完全不是面向对象的。本文建议对 Java 语言进行重大修改和补充,以解决这些问题。

Java 语言的线程模型是此语言的一个最难另人满足的部分。尽管 Java 语言本身就支持线程编程是件好事,但是它对线程的语法和类包的支持太少,只能适用于极小型的应用环境。

关于 Java 线程编程的大多数书籍都长篇累牍地指出了 Java 线程模型的缺陷,并提供了解决这些问题的急救包(Band-Aid/邦迪创可贴)类库。我称这些类为急救包,是因为它们所能解决的问题本应是由
Java 语言本身语法所包含的。从长远来看,以语法而不是类库方法,将能产生更高效的代码。这是因为编译器和
Java 虚拟器 (JVM) 能一同优化程序代码,而这些优化对于类库中的代码是很难或无法实现的。

在我的《Taming Java Threads》(请参阅参考资料)书中以及本文中,我进一步建议对
Java 编程语言本身进行一些修改,以使得它能够真正解决这些线程编程的问题。本文和我这本书的主要区别是,我在撰写本文时进行了更多的思考,
所以对书中的提议加以了提高。这些建议只是尝试性的 --
只是我个人对这些问题的想法,而且实现这些想法需要进行大量的工作以及同行们的评价。但这是究竟是一个开端,我有意为解决这些问题成立一个专门的工作组,假如您感爱好,请发 e-mail 到 threading@holub.com。一旦我真正着手进行,我就会给您发通知。

这里提出的建议是非常大胆的。有些人建议对 Java
语言规范 (JLS)(请参阅参考资料)进行细微和少量的修改以解决当前模糊的
JVM 行为,但是我却想对其进行更为彻底的改进。

在实际草稿中,我的许多建议包括为此语言引入新的要害字。虽然通常要求不要突破一个语言的现有代码是正确的,但是假如该语言的并不是要保持不变以至于过时的话,它就必须能引入新的要害字。为了使引入的要害字与现有的标识符不产生冲突,经过细心考虑,我将使用一个
($) 字符,而这个字符在现有的标识符中是非法的。(例如,使用
$task, 而不是 task)。此时需要编译器的命令行开关提供支持,能使用这些要害字的变体,而不是忽略这个美元符号。

task(任务)的概念

Java
线程模型的根本问题是它完全不是面向对象的。面向对象 (OO) 设计人员根本不按线程角度考虑问题;他们考虑的是同步信息异步信息(同步信息被立即处理
--
直到信息处理完成才返回消息句柄;异步信息收到后将在后台处理一段时间
-- 而早在信息处理结束前就返回消息句柄)。Java 编程语言中的
Toolkit.getImage() 方法就是异步信息的一个好例子。getImage()
的消息句柄将被立即返回,而不必等到整个图像被后台线程取回。

这是面向对象 (OO) 的处理方法。但是,如前所述,Java
的线程模型是非面向对象的。一个 Java 编程语言线程实际上只是一个
run() 过程,它调用了其它的过程。在这里就根本没有对象、异步或同步信息以及其它概念。

对于此问题,在我的书中深入讨论过的一个解决方法是,使用一个
Active_object。 active
对象是可以接收异步请求的对象,它在接收到请求后的一段时间内以后台方式得以处理。在
Java 编程语言中,一个请求可被封装在一个对象中。例如,你可以把一个通过
Runnable接口实现的实例传送给此 active 对象,该接口的 run()
方法封装了需要完成的工作。该 runnable 对象被此 active 对象排入到队列中,当轮到它执行时,active 对象使用一个后台线程来执行它。

在一个 active 对象上运行的异步信息实际上是同步的,因为它们被一个单一的服务线程按顺序从队列中取出并执行。因此,使用一个
active 对象以一种更为过程化的模型可以消除大多数的同步问题。

在某种意义上,Java 编程语言的整个 Swing/AWT 子系统是一个 active
对象。向一个 Swing 队列传送一条讯息的唯一安全的途径是,调用一个类似
SwingUtilities.invokeLater() 的方法,这样就在 Swing 事件队列上发送了一个 runnable 对象,当轮到它执行时,
Swing 事件处理线程将会处理它。

那么我的第一个建议是,向 Java 编程语言中加入一个 task(任务)的概念,从而将active 对象集成到语言中。( task的概念是从 Intel 的 RMX
操作系统和 Ada 编程语言借鉴过来的。大多数实时操作系统都支持类似的概念。
上一篇:深入浅出Java多线程程序设计.doc 人气:437
下一篇:Java 语言是强类型语言语言 人气:502
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-13 爬爬思特新闻管理系统 v2.0 Beta1
2008-10-13 Pligg v9.9.5 Beta
2008-10-13 广优邮件发送系统 v2.1
2008-10-13 缤纷互动视频交友 v3.1 RC
2008-10-13 MyShop网络商城 build 081005
2008-10-13 Chyrp 超轻量级开源博客引擎 v2.
2008-10-13 162100静态(论坛/文章)系统 v2.4
2008-10-13 金博人才招聘求职网黄金版 v4.2
2008-10-13 愚人笔记 v4.0
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成