导航:首页 > 编程语言 > 多线程编程的目的

多线程编程的目的

发布时间:2023-03-10 09:53:04

❶ 为什么要使用多线程

在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。

在计算机编程中,一个基本的概念就是同时对多个任务加以控制。许多程序设计问题都要求程序能够停下手头的工作,改为处理其他一些问题,再返回主进程。可以通过多种途径达到这个目的。最开始的时候,那些掌握机器低级语言的程序员编写一些“中断服务例程”,主进程的暂停是通过硬件级的中断实现的。尽管这是一种有用的方法,但编出的程序很难移植,由此造成了另一类的代价高昂问题。中断对那些实时性很强的任务来说是很有必要的。但对于其他许多问题,只要求将问题划分进入独立运行的程序片断中,使整个程序能更迅速地响应用户的请求。

最开始,线程只是用于分配单个处理器的处理时间的一种工具。但假如操作系统本身支持多个处理器,那么每个线程都可分配给一个不同的处理器,真正进入“并行运算”状态。从程序设计语言的角度看,多线程操作最有价值的特性之一就是程序员不必关心到底使用了多少个处理器。程序在逻辑意义上被分割为数个线程;假如机器本身安装了多个处理器,那么程序会运行得更快,毋需作出任何特殊的调校。根据前面的论述,大家可能感觉线程处理非常简单。但必须注意一个问题:共享资源!如果有多个线程同时运行,而且它们试图访问相同的资源,就会遇到一个问题。举个例子来说,两个线程不能将信息同时发送给一台打印机。为解决这个问题,对那些可共享的资源来说(比如打印机),它们在使用期间必须进入锁定状态。所以一个线程可将资源锁定,在完成了它的任务后,再解开(释放)这个锁,使其他线程可以接着使用同样的资源。

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

❷ 在c++中,在多线程编程中,为什么要把一些线程给挂起呢这样做有什么目的呢

线程的执行需要提供运算资源,而计算机最直接的运算资源,除了内存,就是CPU了。线程的执行需要占用CPU时间。操作系统为了模拟用户“看起来的并发",其底层其实是使用时间片轮询的策略,也就是,会将CPU时间切割成粒度较小的时间片,然后轮流提交到各个线程去执行,在用户可感知的时间内,每个线程也就都得到了运行的机会。
交给”各个线程“去执行,更确切的说法是,交给”各个等待运行的线程“去执行。而挂起线程,实际上,就是告诉操作系统,这个线程不活跃了,暂时不需要运算了,可以从上述的等待运行线程队列中去去掉,然后放入”挂起线程池“中,以后操作系统CPU调度的时候,就不再轮询到这个线程无谓浪费CPU时间了,可以让其他真正active的线程得到更充分的CPU运行时间。
那如果这个线程挂起后,在以后某一时刻想重新运行起来怎么办?这个时间就需要去唤醒这个线程了,唤醒线程的过程,其实也就是从”挂起线程池“放入”等待运行的线程队列“过程,当CPU时间轮询到这个线程,就又可以愉快的玩耍了。

❸ C++多线程编程问题

多线程工作可以提高解决问题的速度

你举得例子可以多线程实现,但是更多的人称之为分布式计算
多线程主要是创建多个线程,每个线程负责自己的事情,每个线程只对主线程负责
至于解决问题的速度应该可以达到提高一半,但是你要注意资源的互斥,互斥处理不好估计会事倍功半

阅读全文

与多线程编程的目的相关的资料

热点内容
海康摄像萤石云服务器 浏览:814
安卓手机怎么改安卓版名 浏览:147
雅思听力807词汇pdf 浏览:897
黄豆私人加密 浏览:192
java分钟转换小时 浏览:245
易语言服务器如何提高 浏览:591
网站主机服务器地址查看 浏览:859
算法学不会能当程序员吗 浏览:119
程序员技术交流研究 浏览:814
javaresponse文件 浏览:734
linuxrar压缩文件夹 浏览:218
魅蓝手机连接不上服务器怎么回事 浏览:379
工行app怎么改已绑定银行卡 浏览:533
oppo芯片程序员 浏览:602
oppok3应用怎么加密 浏览:327
电脑软盘怎么加密码 浏览:815
服务器光交换机有什么用 浏览:708
app上怎么拍蛙小侠 浏览:217
志高聊天app怎么下载 浏览:635
邮政app怎么不能扫付款码 浏览:559