线程安全集合
1.阻塞队列:使用生产者消费者的理论完成线程操作
方法
add 添加一个元素 如果队列满,抛出异常
element 返回队列的头元素 如果队列空,抛异常
offer 添加一个元素并返回true 如果队列满,返回false
peek 返回队列的头元素 如果队列空,返回false
poll 移出并返回队列的头元素 如果队列空,返回null
put 添加一个元素 如果队列满,则阻塞
remove 移出并返回头元素 队列空,抛异常
take 移出并返回头元素 如果空,则阻塞
如果队列当作线程管理工具来使用,将用到put和take方法
linkedBlockingQueue的容量是没有边界的
ArrayBlockingQueue在构造是需要制定r哦n量,并且由一个可选的参数来制定是否需要公平性。
PriorityBlockingQueue是一个带优先级的队列,没有容量上线,如果队列为空,取元素的操作会阻塞
2.concurrent包提供了映像、有序集和队列的高效实现
1.ConcurrentHashMap
2.ConcurrentSkipListMap
3.ConcurrentSkipListSet
4.ConcurrentLinkedQueue
构建一个新的线程是有一定代价的,因为设计与操作系统的交互。如果程序中创建了大量的声明期很短的线程,应该使用线程池。
另一个使用线程池的理由是减少并发线程树木。创建大量线程会大大降低性能
使用连接池时应该做的事:
1.调用Executors类中静态的方法newCachedThreadPool或newFixedThreadPool
2.调用submit提交runnable或callable对象
3.如果想要取消一个任务,或如果提交callable对象,那就要保存好返回的future对象
4.当不再提交任何任务时,调用shutdown
Callable与Future
Runnable封装了一个异步运行的任务,可以把它想像称为一个没有参数和返回值的异步方法
Callable与Runnable类似,但是有返回值。Callable接口时一个参数化的类型,只有一个方法call.
Future保存异步计算的结果。可以启动一个计算,将Future对象交给某个线程,然后忘掉它
Future对象的所有者再结果计算好之后就可以获得它
分享到:
相关推荐
在Java编程语言中,线程是程序执行的基本单元,它允许程序并发地...同时,"Java线程学习和总结.files"目录下的文件可能是与文章相关的辅助资料,例如代码示例或图片。建议结合这些资料一起学习,以获得更全面的知识。
Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java多线程学习Java...
本书的新版本展示了如何利用Java线程工具的全部优势,并介绍了JDK 2线程接口中的最新变化。你将学习如何使用线程来提高效率,如何有效地使用它们,以及如何避免常见的错误。本书讨论了死锁、竞态条件以及饥饿等问题...
### Java线程学习知识点 #### 一、Java线程概览 - **定义与作用**:线程是在程序中独立且并发执行的路径。在Java中,线程被设计为语言的一部分,而不是作为操作系统的底层工具。每个Java程序至少包含一个主线程,在...
本资源"JAVA线程学习(源代码)"提供了关于Java线程的源代码示例,帮助我们深入理解和实践线程的使用。 首先,我们要理解Java中的线程模型。Java线程由`java.lang.Thread`类或`java.util.concurrent.Executor`框架来...
总的来说,Java多线程学习涵盖了线程的创建、同步、通信、调度以及异常处理等多个方面,深入理解和掌握这些知识点对于提升Java程序的性能和复杂性至关重要。通过阅读提供的"Java多线程.pdf"文档,你可以进一步了解和...
在学习Java多线程的过程中,理解线程与进程的概念是非常基础且重要的一步。首先,进程是一个程序的执行实例,是操作系统资源分配的基本单位,具有独立的地址空间和运行状态。每个进程至少包含一个线程,我们称之为...
总的来说,理解和掌握Java线程的创建、运行、同步以及线程安全,是成为一名合格的Java开发者必不可少的技能。通过学习和实践,开发者可以编写出更加高效、健壮的多线程应用程序,以应对复杂的并发编程挑战。
Java 线程学习笔记 Java 线程创建有两种方法: 1. 继承 Thread 类,重写 run 方法:通过继承 Thread 类并重写 run 方法来创建线程,这种方法可以使线程具有自己的执行逻辑。 2. 实现 Runnable 接口:通过实现 ...
### Java线程教程知识点梳理 #### 一、教程概述 - **目标读者**: 本教程主要面向具备丰富Java基础知识但缺乏多线程编程经验的学习者。 - **学习成果**: 学习者能够掌握编写简单的多线程程序的能力,并能够理解和...
### Java多线程学习资料知识点解析 #### 一、引言 Java作为一种广泛使用的编程语言,在并发编程领域具有独特的优势。多线程是Java中实现并发处理的核心技术之一,能够显著提升程序的性能和响应性。本文将深入探讨...
Java线程有五种状态:新建、就绪、运行、阻塞和终止。`Thread.State`枚举类型表示这些状态,理解它们有助于优化线程管理。 三、线程同步 1. 同步机制:为了解决多线程并发访问共享资源导致的数据不一致问题,Java...
文档"Java线程池.doc"和文本文件"java线程池学习1.txt"、"java线程池学习2.txt"很可能是关于如何创建和使用线程池的教程,它们可能涵盖了以下内容: 1. 创建线程池的基本步骤:定义核心线程数、最大线程数、线程...
学习Java线程,理解其创建、状态转换、调度和控制,以及如何处理线程间的互斥和同步,对于开发高效、稳定的并发程序至关重要。通过深入研究这些概念,开发者能够编写出更符合现代计算需求的高质量软件。
Java线程API是Java编程语言中的一个重要组成部分,它允许开发者在一个程序中同时执行多个任务,提高了应用程序的效率和响应性。...通过深入阅读"Java线程.pdf"文档,可以进一步学习这些概念的细节和实践应用。
### Java线程学习教程知识点详解 #### 一、教程概览 - **适用人群**: 本教程主要面向那些已经熟练掌握了Java语言基本语法和应用,但对于多线程和并发编程经验较少的Java开发者。 - **目标**: 学习者通过本教程的...
Java多线程是一块重要的内容,李兴华讲解的Java是一个很好的资源
通过学习这个Java线程使用教程,你将能够熟练地在多线程环境中编写高效、安全的Java程序,理解线程同步、通信、线程池以及并发工具类的使用。阅读提供的"Java线程.pdf"和"说明.txt"文件将帮助你更深入地掌握这些知识...
Java线程是多任务编程的重要概念,它允许程序同时执行多个独立的任务,从而...在"线程池.rar"和"线程实例"这两个文件中,你可以找到关于这些概念的具体示例代码,通过学习和实践,可以深入理解Java线程的运用和管理。