什么时候要用多线程的坏处,不用的话有什么坏处

在编程中,什么时候使用多线程_百度知道
在编程中,什么时候使用多线程
刚学JAVA 和.NET 对多线程的定义和使用不是很清楚,书上都说得很抽象
哪位高手能用自己的话给我解释一下多线程的意思以及什么时候使用多线程,最好能举些例子。
本人菜鸟,请尽量说得简单明了一些,别从网上复制一大堆给我哈~
能说得让我明白的,高分回报!...
我有更好的答案
多线程的使用主要是用来处理程序“在一部分上会阻塞”,“在另一部分上需要持续运行”的场合。一般是根据需求,可以用多线程,事件触发,callback等方法达到。但是有一些方法是只有多线程能办到的就只有用多线程或者多进程来完成。举个简单的例子,能理解就行。假设有这样一个程序,1会不停的处理收到的所有TCP请求。对于每个TCP请求做不同的操作。不能有遗漏2有很多特定的请求会向一个服务器发送存储的数据,或者是等待用户输入。来看看。第1个要求很简单。用个while循环就搞定了。但第2个特性呢。一旦在等待用户输入或者是连接服务器时,程序会“阻塞”一段时间,这一段时间内就无法处理其他的TCP请求了。所以可以利用多线程,每个线程处理不同的TCP请求。这样程序就不会“阻塞”掉了。
采纳率:87%
来自团队:
你需要即时的(real time)对比COM1的数据和COM2的数据,怎么办?这时候你必须要用到3个线程,线程1读取COM1,线程2读取COM2,线程3做对比。同时,你还需要另外一个While 1循环不间断读取COM2的数据。然后按你要求来解释的,再对比,尽量简单明了:假设,你现在有一个While 1循环负责读取COM1的数据,不能间断,如果你读完COM1再读COM2。为什么不能一个While 1循环完成?因为是Real Time
本回答被网友采纳
  还有其他很多使用多线程的好处,这里就不一一说明了。  一些线程模型的背景  我们可以重点讨论一下在Win32环境中常用的一些模型。  ·单线程模型  在这种线程模型中。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行,因为所有的线程都是相同的块的一个部分,并且可以共享。  ·多线程块模型(自由线程块模型)  多线程块模型(MTA)在每个进程里只有一个块而不是多个块。这单个块控制着多个线程而不是单个线程。这里不需要消息队列。这些应用程序一般比较复杂,因为程序员必须提供线程同步以保证线程不会并发的请求相同的资源,每个线程被分为进程里一个单独的块。每个进程可以含有多个块,可以共享多个块中的数据。程序规定了每个块中线程的执行时间,这样比如用户点击了一个按钮去触发某些事件的处理。但它的性能还不是很好,因为它使用了串行化的线程模型,一个进程中只能有一个线程,剩下的进程必须等待当前的线程执行完。这种模型的缺点在于系统完成一个很小的任务都必须占用很长的时间,可以弹出一个进度条来显示处理的进度  ·程序的运行速度可能加快  ·在一些等待的任务实现上如用户输入、文件读写和网络收发数据等。通常由操作系统负责多个线程的调度和执行每个正在系统上运行的程序都是一个进程。所有的请求通过Windows消息队列进行串行化,一个程序里可能会包含多个执行的线程,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等,这样保证了每个时刻只能访问一个块,因而只有一个单独的进程可以在某一个时刻得到执行。这种模型比单线程模型的好处在于,可以响应同一时刻的多个用户请求的任务而不只是单个用户请求。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。  ·块线程模型(单线程多块模型STA)  这种模型里,因为降低了系统的负载,因而可以优化来减少系统idle的时间,因而导致竞争情况的发生。  什么是多线程?  多线程是为了使得多个线程并行的工作以完成多项任务。这样的程序比单线程模型和STA的执行速度都要块,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。  使用线程的好处有以下几点。在这里:  ·使用线程可以把占据长时间的程序中的任务放到后台去处理  ·用户界面可以更加吸引人,任务是一个接一个得到执行的。这里有必要提供一个锁机制。但是这样也许会导致系统死锁的发生。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文
为您推荐:
其他类似问题
多线程的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)多线程的适用场景是什么?为啥要用多线程_百度知道
多线程的适用场景是什么?为啥要用多线程
我有更好的答案
计算出结果,更无法打印,并分别打印到屏幕上,必须要全部输入完,才能计算出结果,再打印到屏幕。如果用户一直没有输入,那么无法计算。如果用户输入了。用户在输入算式3的时候,计算线程在计算算式2,打印线程在打印算式1。使用线程的话,一个线程用来等待用户输入,一个用来计算结果,一个用来打印使用多线程是为了提高程序运行的效率。假如有一个程序,要求用户输入多个算式
采纳率:97%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)155被浏览29,016分享邀请回答6添加评论分享收藏感谢收起5添加评论分享收藏感谢收起

我要回帖

更多关于 什么时候用到多线程 的文章

 

随机推荐