`
robin35java
  • 浏览: 20475 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

java多线程--OO方式

阅读更多
http://35java.com/zhibo/forum.php?mod=viewthread&tid=425&extra=page%3D4
java多线程传说中是面向对象的,但其api按OO思想很大程度上是比较“奇怪”的。
  1,一般我们认为是一个线程阻塞了另一个线程,但是我们在编写多线程程序时,是使用synchronized或者使用java concurrent包的lock来阻塞另一个线程的,即阻塞一个线程是通过java语义或者对象来完成的,而不是通过另一线程来完成的,可能我们更能接受thread1.block(thread2)这种方式(虽然这种方式不可取,但是这种方式比较符合我们的思维.因为线程代表的是一个运行时的概念,我们在应用中线程的状态随时都可能发生改变,而且难以预料,我们不可能让一个线程做为主体完成线程间的协作,只能通过共享对象来完成线程间的协作。)。注:synchronized使用了java底层的语义做保证,而java concurrent包则更面向对象一点,它提供了一个对象lock来保证。
  2,一个线程阻塞自已调用的是object.wait(),唤醒另一个线程使用object.notify()或者java concurrent包中的condition对象的对应方法,而不是thread.block();(需要首先获取对象锁)
    一个线程中断另一个线程使用thread.interrupt()。它表示当前线程中断thread线程。
  java多线程的OO并不是一个线程直接操作另一线程(对于中断来说是直接操作的),而是通过它们之间桥梁(共享对象)的状态来间接操作另一线程的,这一点需要注意。并且要区分操作对象是当前线程还是另一线程。e.g.object.wait()操作的对象为当前线程,object.notify()操作的对象为另一线程。  
分享到:
评论

相关推荐

    第五讲-Java对象运行机制与多线程2019-V31

    在本讲"第五讲-Java对象运行机制与多线程2019-V31"中,我们将深入探讨Java编程语言的核心概念,特别是Java对象的运行机制和多线程。这些知识点对于理解和优化Java程序的性能至关重要。 首先,Java是一种面向对象的...

    estudos-java-oo

    标签“Java”确认了这个主题与Java编程语言直接相关,涵盖了Java的标准库、语法、异常处理、输入/输出(I/O)、集合框架、多线程、网络编程等多个方面。 在压缩包子文件的文件名“estudos-java-oo-main”中,“main...

    curso-java-oo

    10. **线程与并发**:Java支持多线程编程,允许多个任务同时执行,提高程序效率。 11. **垃圾回收**:Java的自动内存管理机制,负责释放不再使用的对象所占用的内存。 12. **泛型**:泛型引入了类型参数,提高了...

    head-first-java.pdf

    JAVA 入门书籍,简单易懂 《head first java》是本完整的面向对象(object-oriented,oo)程序设计和java的学习指导。本书是根据学习理论所设计的,可以从学习程序语言的基础...·多线程 ·网络程序设计 ·集合与泛型

    oo-programming-java-part-II-Helsinki

    11. **线程与并发**:Java提供了丰富的多线程支持,通过Thread类和Runnable接口创建并管理线程。并发编程涉及到同步、互斥、死锁等复杂概念,Java提供了synchronized关键字、wait/notify机制以及并发工具类如...

    java\CoreJava笔记\CoreJAVA_day01

    - 类库:Java提供了丰富的标准类库,如集合框架、I/O流、网络编程、多线程等,这些是开发中常用的工具。 4. **开发环境**: - IDE(Integrated Development Environment):如Eclipse、NetBeans、IntelliJ IDEA等...

    专业培训java的基本课程-7页精选文档.docx

    - **多线程程序设计:** 利用线程提高程序执行效率。 **Java桌面系统项目开发:** - 团队协作完成具有一定规模的桌面应用程序开发。 **Linux的基本操作与Java程序开发:** - 在Linux环境下安装和配置Java环境。 - ...

    Head-First-Java(英文版)

    - **第十五章:建立连接** - 网络套接字和多线程编程。 - **第十六章:数据结构** - 集合框架和泛型。 - **第十七章:发布你的代码** - 包装和部署。 - **第十八章:分布式计算** - 远程方法调用(RMI)、Servlet、...

    Head First Java 中文版

    《head first java》是本完整的面向对象(object-oriented,oo)程序设计和java的学习指导。本书是根据学习理论所设计的,可以从学习程序语言的基础开始一直到包括线程、网络与...·多线程 ·网络程序设计 ·集合与泛型

    JAVA OO前14章总结

    2. **多线程**:在Java中,多线程用于实现并发执行任务,提高程序效率。`Thread`类和`Runnable`接口是实现多线程的两种主要方式。通过创建并启动`Thread`对象或实现`Runnable`接口并将其传递给`Thread`,可以开启新...

    Head First Java——orel.rar

    headoffirst 中文高清版电子书pdf。非扫描版。《Head First Java》是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以...*多线程 *网络程序设计 *集合与泛型

    java学习重点

    5 分布式开发,支持多线程,可靠安全健壮; 一次编写,处处运行,可以更容易的发布软件; 3、主要的开源网站: ①www.Java.net ②www.apache.org ③www.sourceforge.net ④www.theserverside.com ⑤...

    电梯调度java程序 buaa oo课程

    电梯调度在计算机科学中是一个经典的实时系统问题,特别是在操作系统(OO)课程中常常作为案例来讲解多线程、优先级调度以及并发控制等概念。在这个Java程序中,它旨在模拟一个现实世界的电梯控制系统,处理电梯内外...

    java必记单词

    - **定义**:多线程是让程序在同一时间处理多个任务的技术。 - **应用场景**:提高程序的并发性和响应速度。 #### Object 对象 - **定义**:对象是类的一个实例。 - **应用场景**:用于表示现实世界中的实体。 ###...

    java知识点总结

    - **多线程**:Java通过Thread类和Runnable接口支持多线程编程。 ##### 2.7 I/O流 - **输入/输出流**:Java提供了多种流类来处理文件的读写操作,如InputStream、OutputStream等。 ##### 2.8 网络编程 - **网络...

    Java扫雷 毕业设计全套含文档.rar

    一个适合学习的Java扫雷游戏源码 编写文档,还包括程序说明文件、使用说明和需求分析,是一套完整的毕业设计论文资料,在源码包...多线程技术、java的awt.events消息处理。实践了java课程多方面的内容,近千行代码量。

    Java中的30个概念

    - **多线程**:Java支持多线程编程,简化了并发任务的处理,使其在服务器端开发中受到青睐。 - **Applet和Servlet**:Applet是可以在网页中运行的Java小程序,Servlet用于动态Web服务。 3. **基本概念**: - **...

    Fundamentos-Programacao-OO:Disciplina do 2°períodode ADS

    9. **线程**:Java内置了对多线程的支持,通过继承Thread类或实现Runnable接口可以创建并运行线程,实现程序的并发执行。 10. **泛型**:泛型允许在类、接口和方法中使用类型参数,提高了代码的类型安全性和复用性...

    java必须知道的一些问题,入门必备

    - Java 内置了对多线程的支持,使得开发人员可以轻松创建并行执行的代码。这一点是 Java 相对于其他语言的一个显著优势之一。 7. **Applet 和 Servlet**: - Applet 是一种可以在网页中执行的小应用程序,它需要...

Global site tag (gtag.js) - Google Analytics