Java内置的多线程是把双刃剑,一方面: 它提供了语言,库,以及跨平台的内存模型的支持,方便了用户对并发的开发。
另一方面,它降低了多线程开发的难度,导致了开发门槛低,但多线程是个高级话题,需要额外考虑多线程问题
1.3.1 正确性问题
多线程在缺乏充足同步的情况下,它们的运行结果是难以预料的。在没有同步控制下,编译器,硬件,运行过程中都可以对操作进行时间和顺序的改进。 如在寄存器或处理器缓存变量。因为这样做可以提高性能,但这样会破坏安全性
1.3.2 存活性问题
正确性问题在单线程和多线程都会出现,只是多线程会额外引入一些正确性问题。而存活性问题是多线程独有的。
存活性关注的是顺利达到了最终的结果。存活性问题是程序进入了一种无法通往成功的状态,就像死循环一样
多线程会额外带来死锁,饿死,活锁等存活性问题。这些问题很难定位,因为它们依赖于特定的时间或事件
1.3.3 性能问题
多线程会额外带来一些性能问题,并发设计良好的系统能够提高性能。但因为多线程本身也需要消耗一定运行时间。
在很多线程存在情况下,线程之间的却换会非常频繁,却换需要进行上下文却换等昂贵操作。
线程之间的同步操作会阻碍编译器优化,内存缓存失效,这些都会带来性能损失。
分享到:
相关推荐
Java多线程程序设计是Java编程中的高级主题之一,它涉及到并发执行多个任务的能力。Java提供了丰富的API来支持多线程编程,并通过JVM(Java虚拟机)的管理使多线程编程变得相对容易。在深入多线程程序设计之前,我们...
本章“jdk6.0从入门到精通-----chapter8并发多线程(1)”着重讲解了Java 6中关于多线程的基本知识和实践技巧。通过源码下载,读者可以更直观地理解多线程的实现方式。 首先,我们要理解什么是多线程。在单线程环境...
内含 chapter02-chapter18 共 17 个实例性源码项目,内容循序渐进,由入门到精通。尤其适合于没有 Java 线程开发经验的朋友。自己动手敲出本资源解压缩后的 ...相信你理解了此源码之后,即可步入 Java 多线程开发。
此资源中的"chapter11"可能包含有关如何在Applet中使用多线程的示例和练习。 学习Java多线程时,需要理解以下几个关键概念: 1. **线程状态**:Java线程有新建、可运行、运行、等待、阻塞和死亡等六种状态,理解...
本教程将带你深入理解Android中的多线程,并通过"chapter8_n"这个文件夹中的实例进行实践。 首先,我们来了解一下Android中的线程。主线程,也称为UI线程,是应用运行的入口,负责处理用户交互和更新UI。由于...
Chapter 3 explains this in more detail. * Efficient time sharing: Using thread and process priorities, you can ensure that everyone gets a fair allocation of CPU time. The wise use of threads turns...
金融风险管理财务风险管理Chapter_4风险管理工具衍.pptx
死锁是多线程编程中的常见问题,当两个或更多线程相互等待对方释放资源时,就会发生死锁。避免死锁的方法包括资源预分配、避免循环等待、设置超时和死锁检测算法等。 在Chapter 7中,你将深入学习如何在JDK 6.0中...
操作系统原理:Chapter 4 线程.ppt
操作系统英文教学课件:Chapter 4 Threads主要介绍了线程的概念、多线程模型、线程相关的问题和pthread库的使用。 一、线程概述 线程是CPU利用率的基本单位,由线程ID、程序计数器、寄存器集和堆栈组成。它与同一...
Windows环境下的多线程编程电子书下 分上下两个压缩包
文档中还包含了目录(Table of Contents),列出了数据手册的主要章节,包括概览(Chapter 1 Overview)、特性(Chapter 2 Features)、方框图(Chapter 3 Block Diagram)、引脚分配(Chapter 4 PIN Assignment)和...
操作系统中的线程(Threads)是计算机系统中执行的基本单元,它们是CPU利用率的基础,尤其在多线程计算系统中扮演着重要角色。本章主要涵盖了线程的概念、多线程模型、线程库、线程问题以及操作系统实例分析。 线程...
时域有限差分方法matlab实现,Atef Elsherbeni, 第一章课后习题答案
本章节“Chapter 23”旨在向读者介绍Java编程中的多线程编程,这是Java程序设计艺术第七版的23章节内容。多线程是Java语言的核心特征之一,它允许程序员编写能够在后台同时执行多个任务的程序,从而有效地利用CPU...
本章节我们将深入探讨"chapter7"中的核心概念,这通常涵盖Java编程的高级主题,如多线程、集合框架、IO流以及网络编程等。 首先,多线程是Java中的重要特性,它允许程序同时执行多个任务,提高了程序的效率和响应性...
### 多线程算法知识点详解 #### 一、章节背景介绍 在《算法导论》第三版中,新增了一个非常重要的章节——多线程算法(Multithreaded Algorithms)。本书的作者包括Thomas H. Cormen、Charles E. Leiserson、...
《Android开发案例驱动教程》全面介绍了在开源的手机平台Android操作系统下的应用程序开发技术,包括UI、多线程、数据存储、多媒体、云端应用以及通信应用等方面。 《Android开发案例驱动教程》采用案例驱动模式展开...
9. **Chapter09**和**Chapter13**:这两个文件名可能代表了教程或指南的章节,分别涉及第九章和第十三章的内容,可能讲解了SEO的特定主题,如关键词策略或网站架构优化。 了解这些文件的内容,我们可以深入学习SEO...
在单线程进程中,只有一个执行路径,而多线程进程则允许多个执行路径同时进行,从而提高了程序的并发性和响应速度。线程的创建和管理可以在用户空间(用户线程)或内核空间(内核线程)进行。用户线程的管理由用户级...