`
webgdi
  • 浏览: 6319 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java多线程设计模式(5) wait/sleep的区别

阅读更多
前面讲了wait/notify机制,Thread还有一个sleep()静态方法,它也能使线程暂停一段时间。sleep与wait的不同点是:sleep并不释放锁,并且sleep的暂停和wait暂停是不一样的。obj.wait会使线程进入obj对象的等待集合中并等待唤醒。

但是wait()和sleep()都可以通过interrupt()方法打断线程的暂停状态,从而使线程立刻抛出InterruptedException。

如果线程A希望立即结束线程B,则可以对线程B对应的Thread实例调用interrupt方法。如果此刻线程B正在wait/sleep/join,则线程B会立刻抛出InterruptedException,在catch() {} 中直接return即可安全地结束线程。

需要注意的是,InterruptedException是线程自己从内部抛出的,并不是interrupt()方法抛出的。对某一线程调用interrupt()时,如果该线程正在执行普通的代码,那么该线程根本就不会抛出InterruptedException。但是,一旦该线程进入到wait()/sleep()/join()后,就会立刻抛出InterruptedException。
分享到:
评论

相关推荐

    java 多线程设计模式 进程详解

    《JAVA多线程设计模式》PDF 下载 《Java线程 高清晰中文第二版》中文第二版(PDF) 前言 第一章 线程简介 Java术语 线程概述 为什么要使用线程? 总结 第二章 Java线程API 通过Thread类创建线程 使用Runable接口...

    Java多线程编程实战指南 设计模式篇.rar

    本实战指南将深入探讨如何在Java多线程环境中有效地运用设计模式。 一、Java多线程基础 1. 线程创建:Java提供了两种创建线程的方式,一是通过实现Runnable接口,二是继承Thread类。两者各有优缺点,Runnable适合...

    java多线程设计模式详解

    Java多线程设计模式是Java开发中不可或缺的一部分,它允许程序同时执行多个任务,从而提高系统效率和资源利用率。在大型应用或者并发密集型服务中,理解和熟练掌握多线程设计模式至关重要。以下是对Java多线程编程...

    JAVA多线程模式高清版+DEMO

    这个压缩包文件"JAVA多线程模式高清版+DEMO"显然是关于Java多线程设计模式的详细教程,很可能包含了理论讲解、代码示例以及实战DEMO。 在Java多线程编程中,了解和掌握以下知识点至关重要: 1. **线程的创建与启动...

    java多线程设计模式

    线程才能获得锁并进入。Java 提供了多种锁机制,包括 synchronized 关键字、Lock 接口(如 ReentrantLock)以及相关的...同时,合理利用设计模式如 Worker Pattern 可以简化多线程编程,提高代码的可读性和可维护性。

    Java多线程编程总结

    - 生产者消费者模型是一种经典的多线程设计模式,用于解决线程间的协作问题。通常通过队列或缓冲区来实现。 #### 十、Java线程:并发协作-死锁 - 死锁是多个线程相互等待对方持有的锁而导致所有线程都无法继续执行...

    Java多线程的总结

    Java多线程是Java编程中的一个核心概念,它在现代软件开发中扮演着至关重要的角色。多线程允许程序同时执行多个任务,提高了系统资源的利用率,提升了应用程序的响应速度和并发性能。对于大型分布式系统、Web应用...

    java多线程面试题59题集合

    以上只是Java多线程面试中可能会遇到的一部分问题,实际的59题集合可能涵盖更多细节和深度,包括线程安全的类、线程通信的高级技术、并发设计模式等。掌握这些知识点,不仅有助于应对面试,更能提高在实际开发中处理...

    java多线程编程大总结

    然而,从Java 5开始,Java引入了并发包(java.util.concurrent),这个扩展大大提升了Java多线程编程的能力,使开发者能够更方便地编写复杂的多线程程序。并发包中提供了很多高级功能,比如线程池、同步工具、并发...

    java 多线程编程 月食效果

    7. **设计模式**:在多线程编程中,可能会用到设计模式,比如单例模式(确保只有一个地球或月亮对象)或观察者模式(用于监听并响应线程状态的变化)。 8. **异常处理**:多线程环境下,必须考虑线程中断或未预期...

    java多线程 清华大学独特详细讲解源代码

    这个"Java多线程设计模式上传文件"可能包含这些主题的实例代码和详细解释,通过对这些源代码的学习和实践,你可以深入理解多线程的概念,提升你的并发编程能力。记住,理论与实践相结合是掌握任何技术的关键,对于多...

    java多线程程序设计

    Java多线程程序设计是Java开发中的重要领域,它允许应用程序同时执行多个任务,从而提高系统资源利用率和程序性能。本教程将深入探讨Java多线程的各个方面,旨在帮助开发者熟练掌握这一关键技术。 首先,我们要了解...

    java多线程基础资料

    Java多线程是Java编程中的一个...以上只是Java多线程基础知识的一部分,深入学习还包括线程池的配置与优化、线程安全的设计模式、并发工具类的使用等。理解和掌握这些知识点对于编写高效、稳定的多线程程序至关重要。

    Java 多线程学习总结6

    通过深入理解以上知识点,开发者可以更好地设计和管理Java多线程程序,提高程序的性能和稳定性。在实际开发中,根据需求选择合适的方法和工具,避免线程安全问题,优化并发执行效率,是Java多线程编程的核心目标。

    java多线程模拟时钟显示

    在Java编程中,多线程是一项关键特性,它允许程序同时执行多个任务,极大地提高了效率。在这个特定的项目“java多线程模拟时钟显示”中,开发者利用Java的多线程技术来创建一个模拟传统时钟的程序,时钟会实时地显示...

    Java多线程与并发系列22道高频面试题(附思维导图和答案解析)

    本文总结了Java多线程与并发系列的22道高频面试题,涵盖了多线程的实现方法、线程停止、notify和notifyAll的区别、sleep和wait的区别、volatile关键字的作用等多方面的知识点。 一、Java中实现多线程的方法 Java中...

    JAVA(坦克大战,多线程管理).rar

    在Java编程领域,多线程管理是开发高效并发应用程序的关键技术。"JAVA(坦克大战,多线程管理).rar"这个压缩包可能包含了一个基于Java实现的坦克大战游戏,其中涉及了多线程的概念来模拟游戏中的各种动态元素,如...

    java多线程学习教程

    ### Java多线程学习教程知识点详解 #### 一、Java多线程简介 Java多线程编程是指在Java应用程序中利用多线程技术提高程序...通过理解Java多线程的基本概念和实现方式,开发者可以更好地设计和实现高性能的应用程序。

    java多线程编程技术

    Java多线程编程技术是Java编程语言中一个非常重要的技术分支,它允许程序员在程序中创建多个执行流(线程),这些线程可以并发执行,从而使得程序能更加高效地利用系统资源,同时提高应用的响应速度和吞吐能力。...

    多线程单例模式并发访问

    单例模式是一种常用的软件设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。 - **饿汉式**:在类装载时即完成初始化,避免了线程同步的问题。 - **懒汉式**:通过静态内部类或者双重检查锁定的方式来...

Global site tag (gtag.js) - Google Analytics