以前对java的多线程一直处于半了解状态,但是现在发现多线程其实真的很重要,很有用!
用于多线程的函数有:wait(),notify(),notifyall(),sleep().虽然这四个函数是用于线程的,但只有sleep()属于Thread类的一个静态函数.而其他都是属于基类Object的.也就是说我们每一个对象都可以用到这三个函数.如果这四个函数不在synchronized同步块或synchronized同步函数里,则必须放在try{}catch{}里面.
首先说说wait()和sleep()的区别.
它们的共同点是:执行它们后,执行它们的对象的线程会挂起.也就是一直停留在wait()和sleep()函数.直到wait()被唤醒或者sleep()超时.该线程才会继续往下执行.
它们的不同点是:包括wait()的函数(或块)里面的对象锁会被释放.但执行sleep(),对象锁不会被释放.
然后是notify()和notifyall().
notify()和notifyall()仅仅区别与notify()只唤醒一个需要当前对象锁的线程.而
notifyall()则唤醒全部需要当前对象锁的线程.
notify()是指在执行完synchronized块(或函数)后.释放对象锁并唤醒其中一个(无法指定.也就是说有不确定性)正在等待当前synchronized块(或函数)正在锁定的对象的线程.
例子:
public class test{
public int synchronized test_try()
{
System.out.println("before");
notifyall();
System.out.println("after");
}
}
这里执行到notifyall()时不会立刻释放锁并唤醒所有等待当前对象锁的线程.而是在执行完System.out.println("after");即整个synchronized函数(块也一样)执行完才会.如果将notifyall()这一句注释了.那么在该test_try函数执行后.对象锁会被自动释放.但不会唤醒正在等待该对象锁的线程!
分享到:
相关推荐
配合`JAVA多线程总结.ppt`,你可以得到一个更直观和简洁的概览,快速回顾和掌握上述关键知识点。虽然中文版翻译可能存在不足,但原版英文书籍通常能更准确地传达作者的意图和细节,值得深入阅读。
Java多线程是指在Java语言中同时运行多个线程,从而实现对任务的并行处理。这是Java中一个非常重要的概念和技能,尤其在需要高并发处理和优化性能的场景中显得尤为重要。以下将详细梳理Java多线程编程中的一些关键...
Java线程安全是多线程编程中的一个...通过理解这些知识点,开发者可以更好地应对Java多线程环境中的挑战,编写出高效、可靠的并发代码。在实际开发中,要根据具体需求选择合适的线程安全策略,确保程序的稳定性和性能。
总结来说,Java 5的并发库大大提升了Java多线程编程的效率和易用性,通过线程池、阻塞队列、可重入锁以及Callable和Future接口,我们可以构建高效、线程安全的并发程序。在这个网络服务器模型中,我们看到了这些特性...
Java多线程学习总结.pdf
Java多线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,提升软件的效率和响应性。本文档详细介绍了Java中的线程概念、原理以及如何在Java中创建和启动线程。 首先,线程是操作系统实现多任务处理...
Java多线程编程总结.pdf
Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...
线程安全是并发编程中的一个核心概念,它与Java多线程技术紧密相关。文档的描述信息非常简洁,只是重复了标题“java线程安全总结.pdf”,这说明了文档的性质和技术资料定位。标签“技术及资料”进一步强调了文档的...
总结起来,“JAVA多线程编程技术PDF”涵盖了多线程的基本概念、同步机制、线程通信、死锁避免、线程池以及线程安全的集合类等内容。通过深入学习这份资料,开发者可以全面掌握Java多线程编程技术,提升程序的并发...
### Java多线程知识点详解 #### 一、Java多线程概述 **Java多线程**是指在Java程序中能够同时执行多个线程的技术。这种技术使得程序可以在多个任务之间并发执行,从而提高了程序的效率和资源利用率。本文将根据...
### CoreJava多线程学习总结 #### 一、基本概念 多线程是现代软件开发中非常重要的一个概念,尤其在Java这样的高级编程语言中,它使得程序能够更高效地利用计算机资源,实现并发处理任务。为了更好地理解CoreJava...
标题和描述中并未直接提供关于...以上知识点是根据给定的【部分内容】中的信息进行的提炼和总结,可能由于原始文本中OCR技术的误识别或遗漏,部分细节未能完全准确,但在大体上覆盖了Java多线程编程的核心概念和技术。
Java多线程与并发编程是Java开发中至关重要的一部分,它涉及到如何高效地利用CPU资源,以实现程序的并行执行。在操作系统层面,多任务和多进程是通过分配不同的内存空间来实现的,而线程则共享同一进程的内存,这...
Java多线程是Java编程语言中的一个重要特性,它允许开发者创建并发执行的多个线程,从而提高程序的执行效率和响应速度。Java中实现多线程主要有两种方式:继承Thread类和实现Runnable接口。 ### 继承Thread类 在...
Java多线程框架是Java开发中的重要组成部分,特别是在并发处理和高性能应用中不可或缺。Java.util.concurrent包是JDK5引入的一个重要更新,它包含了Doug Lea设计的并发库,极大地提升了Java处理并发的能力。这个库...
以下是对Java多线程编程关键知识点的详细概述: 1. **线程概念与原理**: - **线程与进程**:线程是进程内的执行单元,每个进程至少有一个线程,线程之间共享进程的内存空间。线程的切换成本比进程低,因此多线程...
总结来说,Java多线程技术包括线程的创建、线程安全的保证以及线程池的使用。熟练掌握这些知识点对于开发高效、稳定的多线程应用程序至关重要。通过合理地使用线程和线程池,我们可以有效地利用系统资源,提高程序的...