有什麼情况一定要, 只能是多线程编程才能解决? 给个具体的例子, 我初学多线程...
3个回答
展开全部
这是典型的对多线程不理解造成的,问题本身就存在问题。
多线程只是一种技术——所以没有所谓的必须,或是只能。
多线程有其自己的适用范围,我们只能说在哪种情况下适合使用多线程,但这种情况下绝对不会是只有多线程能解决。所以问题就言是多线程的典型应用场景,而非这么绝对的问一定要,只能是!不信换一种结构——比如阵列处理器,人家编程时就使用了阵列,与线程的概念就没有任何关系不了!
典型的使用场景其就是一个:充分利用IO资源。
比如说一个界面在工作时不停地接收输入信息(如键盘,mouse,网卡等)而界面或是程序对信息处理时间较长时,最好使用多线程,多线程的意义在于在CPU参于界面处理的同时,可以处理输入事件。如果单线程,你必须等待界面或是程序处理完成之后才可以处理输入事件,而多线程为了防止这种界面或是程序假死的现象(单线程在处理界面时不接受事件)。
再者如果程序在运行过程中,由于要长时间地硬盘进行读写,那么多线程也能很好地解决这一问题。
其实它的目的就是研究发现:单线程(进程)在CPU工作时可能造成其他IO资源(如磁盘IO)的空闲,而使用多线程则是合理利用IO资源,加快整个软件的运行。
事实上了,windows系统是一个多任务多进程的工作,每个进程之间利用的是CPU时间轮片法。而线程之间则利用的多资源的同步进行。
所以说,多线程本身只是提高了IO利用率,与长时间处理什么的其实也没有多大关系。比如windows服务并非线程,但每个windows服务是一个进程,为什么还都可以同时并发在系统中?这个原因就是CPU轮片。而多线程是基于进程所占cpu时间片内的IO资源充分利用。
另一个技术也是线程延伸,就是我们常说的CPU是四核八线,其实他只是将每个物理核心再虚拟一个线程CPU,只不过这个所谓的四核八线CPU仅仅只是提高了CPU的利用率而已。
笑一楼与二楼,还扯什么消息机制——这与系统与毛关系?都是大神啊!
其实在单核单线的CPU上,多线程除了增加线程开辟与回收等开销外,对于CPU并不占任何便宜。而多进程之间已经有CPU轮片法进行各进程的统筹了。
多线程只是一种技术——所以没有所谓的必须,或是只能。
多线程有其自己的适用范围,我们只能说在哪种情况下适合使用多线程,但这种情况下绝对不会是只有多线程能解决。所以问题就言是多线程的典型应用场景,而非这么绝对的问一定要,只能是!不信换一种结构——比如阵列处理器,人家编程时就使用了阵列,与线程的概念就没有任何关系不了!
典型的使用场景其就是一个:充分利用IO资源。
比如说一个界面在工作时不停地接收输入信息(如键盘,mouse,网卡等)而界面或是程序对信息处理时间较长时,最好使用多线程,多线程的意义在于在CPU参于界面处理的同时,可以处理输入事件。如果单线程,你必须等待界面或是程序处理完成之后才可以处理输入事件,而多线程为了防止这种界面或是程序假死的现象(单线程在处理界面时不接受事件)。
再者如果程序在运行过程中,由于要长时间地硬盘进行读写,那么多线程也能很好地解决这一问题。
其实它的目的就是研究发现:单线程(进程)在CPU工作时可能造成其他IO资源(如磁盘IO)的空闲,而使用多线程则是合理利用IO资源,加快整个软件的运行。
事实上了,windows系统是一个多任务多进程的工作,每个进程之间利用的是CPU时间轮片法。而线程之间则利用的多资源的同步进行。
所以说,多线程本身只是提高了IO利用率,与长时间处理什么的其实也没有多大关系。比如windows服务并非线程,但每个windows服务是一个进程,为什么还都可以同时并发在系统中?这个原因就是CPU轮片。而多线程是基于进程所占cpu时间片内的IO资源充分利用。
另一个技术也是线程延伸,就是我们常说的CPU是四核八线,其实他只是将每个物理核心再虚拟一个线程CPU,只不过这个所谓的四核八线CPU仅仅只是提高了CPU的利用率而已。
笑一楼与二楼,还扯什么消息机制——这与系统与毛关系?都是大神啊!
其实在单核单线的CPU上,多线程除了增加线程开辟与回收等开销外,对于CPU并不占任何便宜。而多进程之间已经有CPU轮片法进行各进程的统筹了。
展开全部
如果说我们做一个实时通讯的工具,界面是一个线程,一直都必须运行,不能被占用(比如说通讯的线程),被占用的话就会出现界面停滞或者卡死现象,
这个时候而通讯线程需要时刻监视和处理来往通讯的信息,也是需要时刻运行的,这两个线程都必须是时刻运行的,所以你现在明白了,这了就需要多线程了对不?
这个时候而通讯线程需要时刻监视和处理来往通讯的信息,也是需要时刻运行的,这两个线程都必须是时刻运行的,所以你现在明白了,这了就需要多线程了对不?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在双核或四核cpu上只通过一个进程就把cpu占用率吃到100%
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询