A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wenbolwm 黑马帝   /  2012-3-14 10:58  /  1690 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谁能给我讲解下多线程是怎么一回事么?进程又是什么呢?谢谢了。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

3 个回复

倒序浏览
每个应用程序就是一个进程。像我们用的QQ,YY,MSN,浏览器我们生活中的软件一旦你运行它就会在计算机中产生一个进程。而这些进程都是由CPU来操作的。那么CPU是通过线程来操控进程的。可以看做是工厂里生产产品的生产线。一般一个进程只有一个线程:UI线程。一个线程只能完成一个动作。我们的软件都有很多功能。单线程的话,CPU去执行某个功能的时候就没有办法去响应客户的其他操作。这就出现了程序未响应的情况。此时就要用到多线程。多线程就是CPU可以通过多条线程“同时”操控一个进程。也就是说CPU在处理某些事情的同时还能响应客户。这里的同时并非真的是同时。CPU在同一个时间只能通过一条线程来操控进程。他是在多条线程之间不停地来回切换来运行,只不过切换的速度非常快以至于感觉不出来,所以可以理解为“同时”。这就是多线程的好处。

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
本帖最后由 陈东 于 2012-3-14 13:21 编辑

进程:  
    当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源,而一个进程又是由多个线程组成的。
线程
    线程是程序中的一个执行流,每个线程都有自己的专用寄存器,但代码区是共享的,就是不同的线程可以执行不同的函数。
多线程
    多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。
多线程的好处
     多线程可以提高CPU的利用率。在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大的提高了程序的效率。
多线程的缺点
     线程也是程序,所以线程需要占用内存,线程越多占用内存越多。多线程需要协调和管理,所以需要CPU时刻跟踪线程。线程太多会导致控制太复杂。

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
多线程(或者可以叫异步?)在Asp.net的用处:
其实在Web中的用户,不会管你CPU怎么怎么样,用户做出了响应的请求,服务器越是快速地给用户反应,用户就越喜欢。
多线程就是为了提高用户体验的!(在Asp.net中)
假设有这么一个操作:
1.连接数据库,读取一个数据
2.然后关闭,并读取一个xml文件
3.然后将从数据库获得的数据存储在那个结构极其复杂的xml文件中,或许要迭代10000+次哦!
如果单线程:
用户需要做的仅仅是等待着那个沙漏式/转圈圈式的图标(你懂的),也许你的服务器够快,就2s的请求时间,但,如果更复杂的请求仍然存在,你的用户仍然不能做除了等待之外的事。
引入多线程后:
用户点击的瞬间,刚才那3步后台操作交给了一个独立的线程去处理了,UI线程毫无鸭梨的自由地蹦跶着!
用户请求的事情做了,而用户也可以继续做自己的事,而不是等待。。
希望对你有帮助!

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马