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

线程的优缺点

阅读更多

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

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

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

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

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

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

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


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

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

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

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

分享到:
评论

相关推荐

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

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

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

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

    Qt5 多线程

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

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

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

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

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

    redis技术简介和优缺点的介绍

    redis技术介绍,是否多线程,以及优缺点的比较,常用方法等

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

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

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

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

    XRM复习.pdf

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

    linux网络编程

    POSIX消息队列相关函数 POSIX消息队列示例 35POSIX共享内存 POSIX共享内存相关函数 POSIX共享内存示例 Linux网络编程之线程篇 36线程介绍 什么是线程 进程与线程 线程优缺点 线程模型 N:1用户线程模型 1:1核心线程...

    非关系型数据库优缺点.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信号量与...

    Linux网络编程 视频 教程

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

    C++教程网视频:linux网络编程

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

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

    今天小编就为大家分享一篇关于Java创建线程三种方式的优缺点,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    操作系统实验-线程的创建和撤消.pdf

    同时,我们也了解了多线程编程的优缺点和应用场景。 九、 future work 在未来的实验中,我们可以继续探索多线程编程的其他方面,如线程同步和互斥锁。我们也可以研究其他操作系统对线程的管理和实现方法。

    线程和进程的区别PPT

    网络多线程的用法第一节,线程和进程的区别, 以及多线程的优缺点。

Global site tag (gtag.js) - Google Analytics