多线程都是什么

发布网友 发布时间:2022-04-20 16:58

我来回答

5个回答

热心网友 时间:2023-04-25 14:21

你可以简单把一个程序看做一个进程,我们现在的程序都可以同时进行多项操作,举个栗子QQ,可以一边接受别人传输的文件,一边聊天。我们都知道一个线程肯定是顺序执行的,但是有了多线程就可以一个线程传输文件,一个线程聊天

热心网友 时间:2023-04-25 14:21

线程是程序执行流的最小单元。
举例子一个音乐播放软件,这个软件在内存中运行,我们可以称为这个进程在内存中运行。而当你同时播放音乐和下载歌曲时,这个软件的进程下就可以细分出线程的概念,一个线程负责播放歌曲,一个线程负责连接网络下载歌曲。
在单个程序(进程)中同时运行多个线程完成不同的工作,就可以称为多线程。

热心网友 时间:2023-04-25 14:22

比如超市,很多人去超市购物,这就是多线程,很多人上百度搜索问题,这也是。相同时事情很多人一起做

热心网友 时间:2023-04-25 14:22

多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level
multithreading)或同时多线程(Simultaneous multithreading)处理器。[1]
在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理(Multithreading)”。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程。
多线程会引发出线程安全问题。乐观锁、悲观锁等实现。以及线程池解决方案。

热心网友 时间:2023-04-25 14:23

    线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程.


多线程的概念

    多线程是指从软件或者硬件上实现多个线程并发执行的技术.

    多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。

    最简单的比喻多线程就像火车的每一节车厢,而进程则是火车。车厢离开火车是无法跑动的,同理火车也不可能只有一节车厢。多线程的出现就是为了提高效率。

    如果你的应用程序需要采取以下的操作,那么你尽可在编程的时候考虑多线程机制:

    连续的操作,需要花费忍无可忍的过长时间才可能完成

    并行计算

    为了等待网络、文件系统、用户或其他I/O响应而耗费大量的执行时间

    所以说,在动手之前,先保证自己的应用程序中是否出现了以上3种情形。

    为什么需要多线程(解释何时考虑使用线程)

    从用户的角度考虑,就是为了得到更好的系统服务;从程序自身的角度考虑,就是使目标任务能够尽可能快的完成,更有效的利用系统资源。综合考虑,一般以下场合需要使用多线程:

    程序包含复杂的计算任务时,主要是利用多线程获取更多的CPU时间(资源)。

    处理速度较慢的外围设备.比如:打印时。再比如网络程序,涉及数据包的收发,时间因素不定。使用独立的线程处理这些任务,可使程序无需专门等待结果。

    程序设计自身的需要.WINDOWS系统是基于消息循环的抢占式多任务系统,为使消息循环系统不至于阻塞,程序需要多个线程的来共同完成某些任务。

    每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行

    线程的优先级

    优先级的取值为1-10(数值越高优先级越高)。

    Public final int getPriority();  得到线程优先级的数值。

    Public final void setPriority(int newPriority);修改线程的优先级。

    注:优先级高不代表该线程就一定先运行,只能代表该线程先运行的可能型比较大。

    控制线程周期常用的方法

    Wait()释放CPU的执行权,释放锁。

    Notify()回到wait前的状态。

    Yied()让线程临时暂停。(让线程将资源释放出来)

    Join()让该线程强行加入执行。

    SetDaemon(true)设置该线程为后台线程(当前台线程结束时,后台线程一定会一起结束)。

    注:结束线程原理就是让run方法结束,所以只要控制run的流程即可。

    为什么要线程同步

    线程间共享代码和数据可以节省系统开销,提高效率。但也同时会导致“数据访问冲突”。如何实现线程间有机交互,并确保共享资源在某时只能被一个线程访问,就是线程同步。

    多个线程间共享的数据称为临界资源。

    注意: 代码中如果没有pthread_join,主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行。



声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com