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编程语言的核心概念,特别是Java对象的运行机制和多线程。这些知识点对于理解和优化Java程序的性能至关重要。 首先,Java是一种面向对象的...
标签“Java”确认了这个主题与Java编程语言直接相关,涵盖了Java的标准库、语法、异常处理、输入/输出(I/O)、集合框架、多线程、网络编程等多个方面。 在压缩包子文件的文件名“estudos-java-oo-main”中,“main...
10. **线程与并发**:Java支持多线程编程,允许多个任务同时执行,提高程序效率。 11. **垃圾回收**:Java的自动内存管理机制,负责释放不再使用的对象所占用的内存。 12. **泛型**:泛型引入了类型参数,提高了...
JAVA 入门书籍,简单易懂 《head first java》是本完整的面向对象(object-oriented,oo)程序设计和java的学习指导。本书是根据学习理论所设计的,可以从学习程序语言的基础...·多线程 ·网络程序设计 ·集合与泛型
11. **线程与并发**:Java提供了丰富的多线程支持,通过Thread类和Runnable接口创建并管理线程。并发编程涉及到同步、互斥、死锁等复杂概念,Java提供了synchronized关键字、wait/notify机制以及并发工具类如...
- 类库:Java提供了丰富的标准类库,如集合框架、I/O流、网络编程、多线程等,这些是开发中常用的工具。 4. **开发环境**: - IDE(Integrated Development Environment):如Eclipse、NetBeans、IntelliJ IDEA等...
- **多线程程序设计:** 利用线程提高程序执行效率。 **Java桌面系统项目开发:** - 团队协作完成具有一定规模的桌面应用程序开发。 **Linux的基本操作与Java程序开发:** - 在Linux环境下安装和配置Java环境。 - ...
- **第十五章:建立连接** - 网络套接字和多线程编程。 - **第十六章:数据结构** - 集合框架和泛型。 - **第十七章:发布你的代码** - 包装和部署。 - **第十八章:分布式计算** - 远程方法调用(RMI)、Servlet、...
《head first java》是本完整的面向对象(object-oriented,oo)程序设计和java的学习指导。本书是根据学习理论所设计的,可以从学习程序语言的基础开始一直到包括线程、网络与...·多线程 ·网络程序设计 ·集合与泛型
2. **多线程**:在Java中,多线程用于实现并发执行任务,提高程序效率。`Thread`类和`Runnable`接口是实现多线程的两种主要方式。通过创建并启动`Thread`对象或实现`Runnable`接口并将其传递给`Thread`,可以开启新...
headoffirst 中文高清版电子书pdf。非扫描版。《Head First Java》是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以...*多线程 *网络程序设计 *集合与泛型
5 分布式开发,支持多线程,可靠安全健壮; 一次编写,处处运行,可以更容易的发布软件; 3、主要的开源网站: ①www.Java.net ②www.apache.org ③www.sourceforge.net ④www.theserverside.com ⑤...
电梯调度在计算机科学中是一个经典的实时系统问题,特别是在操作系统(OO)课程中常常作为案例来讲解多线程、优先级调度以及并发控制等概念。在这个Java程序中,它旨在模拟一个现实世界的电梯控制系统,处理电梯内外...
- **定义**:多线程是让程序在同一时间处理多个任务的技术。 - **应用场景**:提高程序的并发性和响应速度。 #### Object 对象 - **定义**:对象是类的一个实例。 - **应用场景**:用于表示现实世界中的实体。 ###...
- **多线程**:Java通过Thread类和Runnable接口支持多线程编程。 ##### 2.7 I/O流 - **输入/输出流**:Java提供了多种流类来处理文件的读写操作,如InputStream、OutputStream等。 ##### 2.8 网络编程 - **网络...
一个适合学习的Java扫雷游戏源码 编写文档,还包括程序说明文件、使用说明和需求分析,是一套完整的毕业设计论文资料,在源码包...多线程技术、java的awt.events消息处理。实践了java课程多方面的内容,近千行代码量。
- **多线程**:Java支持多线程编程,简化了并发任务的处理,使其在服务器端开发中受到青睐。 - **Applet和Servlet**:Applet是可以在网页中运行的Java小程序,Servlet用于动态Web服务。 3. **基本概念**: - **...
9. **线程**:Java内置了对多线程的支持,通过继承Thread类或实现Runnable接口可以创建并运行线程,实现程序的并发执行。 10. **泛型**:泛型允许在类、接口和方法中使用类型参数,提高了代码的类型安全性和复用性...
- Java 内置了对多线程的支持,使得开发人员可以轻松创建并行执行的代码。这一点是 Java 相对于其他语言的一个显著优势之一。 7. **Applet 和 Servlet**: - Applet 是一种可以在网页中执行的小应用程序,它需要...