黑马程序员技术交流社区

标题: 多线程问题 [打印本页]

作者: 黑马-周建    时间: 2013-2-13 02:23
标题: 多线程问题
多线程和进程之间有什么关系,为什么要有多线程?
作者: 丁强强    时间: 2013-2-13 08:12
视频里面讲的很清楚,那个买票小程序, 多个窗口卖票就是多线程。一个窗口卖效率太低了。
作者: 铿锵科技    时间: 2013-2-13 11:05
我是这样理解的:多线程为提高程序运行效率,在一个进程(程序运行后在内存中)中同时运行多块代码(可以相同或不同),这样多线程就产生了
作者: 李洪因    时间: 2013-2-13 11:10
1.线程是进程中的一个实体。
2.同一进程中的多个线程之间可以并发执行。
3.线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU。
补充一点:线程 进程 程序  是逐渐抽象的。
一个程序对应多个进程,进程有生命程序无生命,进程是动态的,而程序是静态的。
作者: 逍林游    时间: 2013-2-13 11:41
简单的说:线程的集合就是进程!
其实我们经常写的main函数就是一个线程,一个线程是顺序执行的,将代码一步一步执行完毕。
然而在这期间cpu不能做其他任何事情,所以cpu的利用率很低。为了解决这个问题各种语言就映入了多线程,cpu就能够没隔几毫秒轮流执行一个线程,
从而实现线程的并发,cpu的利用率大大提高!
作者: 汪平乐    时间: 2013-2-13 12:10
进程:正在进行中的程序
线程:就是进程中的一个执行单元或执行路径,负责进程中程序执行的控制单元。
线程就是将进程中的执行代码分割开来,然后利用CPU的切换分别执行来其高效率...

作者: 王亚东    时间: 2013-2-13 12:23
简单的理解:
把一个进程看做是整个城市的自来水管道,而线程是通往各家各户的小管道,相当于多个线程,这个就可以实现多个家庭同时用水。
而如果进程(主管道)关了,那么线程(分管道)也就无法进行了。
至于深入到cpu,我了解不多,好像多线程在理论上是永远无法同时进行的,只是cpu处理速度快,给我们的感觉是同时进行的。他在某一个时间点只能处理一个。
作者: 杨玲    时间: 2013-2-13 12:59
其实线程和进程没有什么太在的区别,当一个进程中只有一个线程时,说这个线程就是一个进程也没什么不可以,多线程的存在主要是方便于线程间通信的和提高程序的效率的.一个进程中的多个线程共享同一进程中的数据区域,这样多个线程通信起来就比较容易,提高效率就不用说了吧!
作者: 朱玉玺    时间: 2013-2-13 14:58
为什么用多线程?举个例子,比如你过年去火车站买票,买票需要排队,你还想玩手机,那你是觉得是一边排队一边玩手机爽,还是排完队后再啥都不干单玩手机爽?前者就是多线程,后者就是单线程。
作者: 黑马陈凯    时间: 2013-2-13 16:55
一个进程可以包含多个线程,多线程可以提高工作效率




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2