`

多线程基础知识

阅读更多

一.进程和线程

进程就是一个在内存中独立运行的程序,有自己的地址空间。如正在运行的写字板程序就是一个进程。

“多任务”:指操作系统能同时运行多个进程(程序)。如WINDOWS系统可以同时运行写字板程序、画图程序、WORDEclipse等。

线程:是进程内部单一的一个顺序控制流。

线程和进程

a.       每个进程都有独立的代码和数据空间(进程上下文),进程切换的开销大。

b.       线程:轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换的开销小。

c.       多线程:在同一个进程中有多个顺序流同时执行。

 

二.多线程的优点

       a.并发执行,提高效率(并不一定在每一台机器上都能实现,与计算机的实现相关)。

       b.当前没有处理的任务时,可以将处理器时间让给其它任务

       c.可以随时终止线程任务

       d.只有一个处理器,实现同步动作的模拟

       e.多处理器情况下提高设备利用率

 

三.适宜使用多线程的场合

       要用到多线程的情况主要是需要处理大量的IO操作时或处理的情况需要花费大量时间等等,比如读写文件,视频图像的采集、显示、处理、保存等。

       慢速设备与快速设备并存协调时,采用多线程是非常有效的。

       慢速设备有:IO、网络、硬盘

       快速设备有:内存、CPU、寄存器

 

四.多线程的缺点

       a.等待共享资源、独占性资源时处理速度变慢

       b.容易造成死锁,资源竞争,无限等待

       c.当线程数量增多时,对线程管理需要额外的CPU开销

 

五.不适宜使用多线程的场合

       a.启动、终止和销毁线程对象都需要占用开销,若线程用于简短的后台任务,则不适合

       b.容易造成死锁的情况

 

六.合理使用多线程

       a.多线程技术是一把双刃剑

       b.线程的选取要考虑设备的情况

 

多线程并存->云计算

分享到:
评论

相关推荐

    java多线程基础知识

    Java多线程基础知识 Java多线程基础知识是Java编程语言中的一项重要技术,用于提高程序的执行效率和响应速度。在这里,我们将详细介绍Java多线程基础知识的相关概念和技术。 一、程序、进程和线程 程序(Program...

    C#多线程基础知识资料合辑(基础部分)

    以下是一些关于C#多线程的基础知识: 1. **线程的创建**:在C#中,可以使用`System.Threading.Thread`类来创建新的线程。通过实例化`Thread`类并提供一个代表新线程执行的委托,即可启动新线程。例如,`new ...

    java多线程基础资料

    Java多线程是Java编程中的一个...以上只是Java多线程基础知识的一部分,深入学习还包括线程池的配置与优化、线程安全的设计模式、并发工具类的使用等。理解和掌握这些知识点对于编写高效、稳定的多线程程序至关重要。

    C#多线程基础教程

    C#多线程是编程中的重要概念,尤其在开发高性能...总的来说,理解和掌握C#多线程基础知识对于编写高效、健壮的程序至关重要。在实际开发中,应合理利用多线程,注意线程安全,避免潜在的问题,提升软件的稳定性和性能。

    java多线程知识讲解及练习题

    Java 多线程基础知识的了解是 Java 程序设计的重要组成部分,本资源摘要信息对 Java 多线程基础知识进行了详细的讲解和练习题。 1. sleep() 和 wait() 的区别 sleep() 是 Thread 类的方法,导致线程暂停执行指定...

    易语言多线程好用例子 分享给大家

    一、多线程基础知识 多线程是指一个程序中可以同时存在多个执行流程,每个流程称为一个线程。在易语言中,多线程可以帮助开发者实现并行处理,提高程序运行速度,尤其是在处理大量数据或需要进行复杂计算时。同时,...

    csharp多线程示例(全)

    一、多线程基础知识 在C#中,多线程主要通过`System.Threading`命名空间来实现。线程是程序执行的独立路径,每个线程都有自己的堆栈,用于存储方法调用和局部变量。创建新线程有两种主要方式:一是通过`Thread`类,...

    Android多线程全新讲解.pdf

    1. Java多线程基础知识:文件内容提到“Thread.start()”,表明文档从最基本的Java多线程编程开始讲解。Java中的多线程是通过继承Thread类和实现Runnable接口来创建的,每个线程都必须通过start()方法来启动,该方法...

    C#多线程基础教程--

    本教程将深入探讨C#中的多线程基础知识,以及如何通过实例来实现线程的控制和通信。 首先,我们需要理解线程的基本概念。在操作系统中,线程是执行单元,它代表程序的一个执行流程。每个线程拥有自己的栈空间,用于...

    e语言几个简单多线程写法

    **多线程基础知识** 多线程是现代计算机程序设计中常用的一种技术,它允许程序同时执行多个任务,提高了资源利用率和程序的并发性。在e语言中,多线程能够帮助开发者创建高性能、高并发的应用,例如网络服务器、...

    JAVA并发多线程的面试问题及答案-java多线程并发面试题.docx

    在这里,我们将从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。 1. 多线程和并发问题 在 Java 中,多线程和并发问题是非常重要的。面试官通常会问一些...

    多线程和并发基础

    - 牢固掌握Java多线程基础知识是应对面试及日常开发的基础。 - 不断实践并深入了解多线程和并发的具体应用场景,比如数据库连接池管理、异步任务处理等。 - 关注最新的并发模型和技术趋势,如Reactor模式、...

    win32多线程vc6.0

    **多线程基础知识** 1. **线程定义**:线程是进程中的一个执行单元,每个线程都有自己的执行路径,它们共享进程的内存空间和其他资源。与进程相比,线程创建和销毁的开销更小,因此多线程被广泛用于提高程序的并行...

    JAVA多线程教材

    1. **Java多线程基础知识**:Java多线程允许程序同时执行多个任务,这是通过创建和管理线程实现的。Java提供了两种创建线程的方式:继承Thread类和实现Runnable接口。线程的状态包括新建、就绪、运行、阻塞和终止,...

    多线程案例

    【多线程基础知识】 在计算机科学中,多线程是指在一个进程中同时运行多个独立的执行线程。每个线程都有自己的程序计数器、寄存器集和系统栈,允许它们并发执行任务。多线程使得程序能够同时处理多个任务,从而提高...

    java多线程案例——未完成

    下面是对Java多线程基础知识的详细解释: 1. **线程的创建方式**: - 继承`Thread`类:自定义一个新的类,继承Java的`Thread`类,并重写`run()`方法。创建实例后调用`start()`方法启动线程。 - 实现`Runnable`...

Global site tag (gtag.js) - Google Analytics