`
段箭*残箫
  • 浏览: 53707 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

线程的优缺点

阅读更多

何时使用多线程技术,何时避免用它,是我们需要掌握的重要课题。多线程技术是一把双刃剑,在使用时需要充分考虑它的优缺点。
多线程处理可以同时运行多个线程。由于多线程应用程序将程序划分成多个独立的任务,因此可以在以下方面显著提高性能:
(1)多线程技术使程序的响应速度更快 ,因为用户界面可以在进行其它工作的同时一直处于活动状态;

(2)当前没有进行处理的任务时可以将处理器时间让给其它任务;

(3)占用大量处理时间的任务可以定期将处理器时间让给其它任务;

(4)可以随时停止任务;

(5)可以分别设置各个任务的优先级以优化性能。

 是否需要创建多个线程取决于各种因素。在以下情况下,最适合采用多线程处理:
(1)耗时或大量占用处理器的任务阻塞用户界面操作;

(2)各个任务必须等待外部资源 (如远程文件或 Internet连接)。


同样的 ,多线程也存在许多缺点 ,在考虑多线程时需要进行充分的考虑。多线程的主要缺点包括:
(1)等候使用共享资源时造成程序的运行速度变慢。这些共享资源主要是独占性的资源 ,如打印机等。

(2)对线程进行管理要求额外的 CPU开销。线程的使用会给系统带来上下文切换的额外负担。当这种负担超过一定程度时,多线程的特点主要表现在其缺点上,比如用独立的线程来更新数组内每个元素。

(3)线程的死锁。即较长时间的等待或资源竞争以及死锁等多线程症状。

(4)对公有变量的同时读或写。当多个线程需要对公有变量进行写操作时,后一个线程往往会修改掉前一个线程存放的数据,从而使前一个线程的参数被修改;另外 ,当公用变量的读写操作是非原子性时,在不同的机器上,中断时间的不确定性,会导致数据在一个线程内的操作产生错误,从而产生莫名其妙的错误,而这种错误是程序员无法预知的。

分享到:
评论

相关推荐

    多线程与多进程的优缺点比较

    描述了操作系统中多线程和多进程的主要优缺点,对于学习操作系统有很好帮助。

    多线程的运用e语言多线程 e多线程

    四、线程优缺点 优点: 1. 提高系统吞吐量:多线程使得CPU资源得以充分利用,提高程序整体执行效率。 2. 响应性:在进行耗时操作时,主线程不会被阻塞,保持用户界面的响应性。 3. 资源复用:多线程共享进程资源,...

    各框架的优缺点

    各框架的优缺点 Struts2 和 Struts1 是两种常用的 Java Web 开发框架,它们都有其优缺点,本文将对 Struts2 和 Struts1 的优缺点进行详细介绍。 Struts2 的优点 1. 松耦合架构:Struts2 采用松耦合架构,各个组件...

    多线程在三维场景中的应用

    4. 多线程优缺点 多线程的优点在于可以并发执行,提高系统效率;缺点包括调度开销大、设计复杂,易出现线程同步问题。 5. 并行处理机制下的数据组织 通过场景分割和细节层次模型(LOD)等预处理,将大规模三维场景...

    Python之多线程共10页.pdf.zip

    7. **线程优缺点** - **优点**:代码结构简单,易于理解和实现,适合I/O密集型任务。 - **缺点**:由于GIL的存在,多线程在Python中并不能充分利用多核优势,且线程间切换开销较大。 8. **线程安全** - **什么是...

    超线程技术和粗粒度多线程技术

    超线程技术的缺点是因为超线程技术是对多任务处理有优势,因此当运行单线程运用软件时,超线程技术将会降低系统性能,尤其是在多线程操作系统运行单线程软件时将容易出现此问题。 超标量技术是指流水型标量处理器能...

    Qt5 多线程

    Qt5多线程讲解,简单易懂,适合初学者,介绍了多线程各种优缺点

    程序员面试面试中的优缺点..pdf,这是一份不错的文件

    程序员面试中的优缺点 程序员面试中的优缺点是指在面试过程中,面试官如何判断面试者的优缺点,以确定是否录用。根据经验,面试官可以通过面试者的项目经验、基础知识和性格等方面来判断其优缺点。 项目经验是指...

    程序员面试面试中的优缺点.pdf,这是一份不错的文件

    "程序员面试面试中的优缺点.pdf" 本文档讨论了程序员面试中的优缺点,主要从经验、基础和性格三个方面进行了分析。作者认为,经验是最重要的因素,因为它可以说明一个人的综合能力。面试官应该花更多的时间听面试者...

    ssh框架优缺点

    ### SSH框架优缺点详解 SSH框架,即Struts + Spring + Hibernate这三种技术的组合,是Java Web开发中非常流行的一种轻量级架构模式。本文将深入探讨SSH框架中的Struts、Spring、Hibernate各自的优缺点。 #### ...

    Java创建线程三种方式的优缺点

    Java创建线程三种方式的优缺点 Java创建线程主要有三种方式:继承Thread类创建线程、实现Runnable接口创建线程和实现Callable和Future创建线程。每种方式都有其优缺点,在实际开发中,选择合适的方式非常重要。 ...

    .Net下多线程的四种编程实现方式详解

    详细讲解了多线程的四种实现方式(Thread、线程池、Task、委托),以及各种实现方式的优缺点。相信对于想学习多线程的朋友是个不错的选择。

    Java模拟多线程实现抢票代码实例

    知识点9:多线程优缺点 多线程编程有其优缺点。优点是可以提高程序的执行效率和响应速度,缺点是增加了程序的复杂性和难以调试性。在本文中,我们讨论了多线程编程的优缺点。 Java模拟多线程实现抢票代码实例是一...

    2018年C++教程网的linux网络编程视频共41集百度云下载链接.rar

    线程优缺点 线程模型 N:1用户线程模型 1:1核心线程模型 N:M混合线程模型 37POSIX线程(一) POSIX线程库相关函数 用线程实现回射客户/服务器 38POSIX线程(二) 线程属性 线程特定数据 39POSIX信号量与互斥锁 POSIX...

    XRM复习.pdf

    多进程与多线程优缺点: ·数据共享和同步:多进程共享复杂,同步简单;多线程共享简单,同步复杂。 ·内存和CPU占用:多进程内存占用大,CPU利用率低;多线程内存占用少,CPU利用率高。 ·创建,销毁,切换:多...

    非关系型数据库优缺点.docx

    非关系型数据库优缺点 非关系型数据库是一种NoSQL数据库, Redis是其中的一种,具有高性能、丰富的数据类型、原子性等特点。下面是Redis的优缺点和优化方案: Redis 的优点 1. 支持数据的持久化,可以将内存中的...

    C++教程网《Linux网络编程》视频百度云地址

    线程优缺点 线程模型 N:1用户线程模型 1:1核心线程模型 N:M混合线程模型 37POSIX线程(一) POSIX线程库相关函数 用线程实现回射客户/服务器 38POSIX线程(二) 线程属性 线程特定数据 39POSIX信号量与...

    c++教程网的linux网络编程视频下载

    线程优缺点 线程模型 N:1用户线程模型 1:1核心线程模型 N:M混合线程模型 37POSIX线程(一) POSIX线程库相关函数 用线程实现回射客户/服务器 38POSIX线程(二) 线程属性 线程特定数据 39POSIX信号量与...

    [免费]2018年C++教程网的linux网络编程视频百度云下载链接.rar

    线程优缺点 线程模型 N:1用户线程模型 1:1核心线程模型 N:M混合线程模型 37POSIX线程(一) POSIX线程库相关函数 用线程实现回射客户/服务器 38POSIX线程(二) 线程属性 线程特定数据 39POSIX信号量与...

Global site tag (gtag.js) - Google Analytics