Java编程语言如何完善自己的缺点-Java频道-中国IT实验室

来源:百度文库 编辑:神马文学网 时间:2024/04/28 23:52:04

Java编程语言如何完善自己的缺点

  Java编程语言如何才能保证自己的相关缺点不会影响在实际的使用呢?下面我们就看看如何才能更好的完善Java编程语言的相关缺点。我前面提到过,必须调用新创建的线程的 start() 方法来启动它的执行。

  但是,仅仅是调用 start() 方法并不意味着线程会立即开始运行。这个方法只是把线程的状态从 new 变成 runnable。只有在操作系统真正安排线程执行的时候,线程状态才会变成 running (从 runnable)。

  Java编程语言常见缺陷

  正如我已经展示过的,Java编程语言中的多线程编程是通过语言支持的大量精心设计的构造实现的。另外,还设计了大量设计模式和指导原则,来帮助人们了解这种复杂性带来的许多缺陷。除此之外,多线程编程会很容易地在不经意间把细微的 bug 带进多线程代码,而且更重要的是,这类问题分析和调试起来非常困难。接下来要介绍的是用 Java 语言进行多线程编程时将会遇到(或者可能已经遇到过)的最常见问题的一个列表。

  Java编程语言争用条件

  据说 争用条件 存在于这样的系统中:多个线程之间存在对共享资源的竞争,而胜出者决定系统的行为。Allen Holub 在他撰写的文章 “programming Java threads in the real world” 提供了一个带有这样 bug 的简单的多线程程序示例。在冲突的访问请求之间进行不正确同步的另一个更可怕的后果是 数据崩溃,此时,共享的数据结构有一部分由一个线程更新,而另一部分由另一个线程更新。在这种情况下,系统的行为不是按照胜出线程的意图进行,系统根本不按照任何一个线程的意图行动,所以两个线程最后都将以失败告终。

  Java编程语言死锁

  死锁 的情况是指:线程由于等候某种条件变成真(例如资源可以使用),但是它等候的条件无法变成真,因为能够让条件变成真的线程在等候第一个线程“做某件事”。这样,两个线程都在等候对方先采取第一步,所以都无法做事。

  Java编程语言活动锁

  活动锁 与 死锁 不同,它是在线程实际工作的时候发生的,但这时还没有完成工作。这通常是在两个线程交叉工作的时候发生,所以第一个线程做的工作被另一个线程取消。一个简单的示例就是:每个线程已经拥有了一个对象,同时需要另外一个线程拥有的另外一个对象。可以想像这样的情况:每个线程放下自己拥有的对象,捡起另外一个线程放下的对象。显然,这两个线程会永远都运行在上锁这一步操作上,结果是什么都做不成。(常见的真实示例就是,两个人在狭窄的走廊相遇。每个人都礼貌地让到另一边让对方先行,但却在相同的时间都让到同一边了,所以两个人还都没法通过。这种情况会持续一些时间,然后两个人都从这边闪到那边,结果还是一点进展也没有。)

Java编程语言如何完善自己的缺点-Java频道-中国IT实验室 J2ME中需要的Java基础知识-Java频道-中国IT实验室 用JDring包设置类似于cron的日程提醒-Java频道-中国IT实验室 java多线程设计模式:wait/notify机制 -Java频道-中国IT实验室 Java设计模式之Interpreter模式-Java频道-中国IT实验室 Eclipse开发struts完全指南一(全)-Java频道-中国IT实验室 Eclipse开发J2ME程序之安装配置-Java频道-中国IT实验室 最强烈推荐-我的java收藏夹[中国IT实验室IT社区] Java编程语言中notify和wait的具体应用 Java编程语言中notify和wait的具体应用 Java程序员的推荐阅读书籍 - Java编程入门 - JavaEye专栏频道 由Java说起:编程语言还需要开源吗? - CSDN.NET - CSDN软件研发频道 Struts 2, spring 2, hibernate 的整合-Java频道-中国IT... JAVA编程 JAVA学习之路:不走弯路,就是捷径(一)|中国IT认证实验室 JAVA学习之路:不走弯路,就是捷径(一)|中国IT认证实验室 校园网络的组建-Cisco频道-中国IT实验室 挑战Java开发优势的四种技术:动态语言,元编程等 三大编程语言的性能PK--Java, C/C++和Ruby 跨越边界: 活动记录和 Java 编程中特定于域的语言 Google将限制Python语言的应用 开发社区热议 - Python编程 - Java... Spring VS. HiveMind 优点缺点大比拼|中国IT实验室 最后完善的JAVA WEB服务器源代码 笔记:第十一讲?JDBC编程-Java/JSP-IT学习者