当前位置: 技术问答>linux和unix
我对线程有些疑问,谁来帮我解释一下?
来源: 互联网 发布时间:2015-03-17
本文导语: 线程与函数调用有什么区别? 线程不就是调用函数吗? | 线程是系统调度概念 函数是程序语言的概念 线程只不过用函数调用创建,用一个函数作为线程的执行体罢了 | 函数...
线程与函数调用有什么区别? 线程不就是调用函数吗?
|
线程是系统调度概念
函数是程序语言的概念
线程只不过用函数调用创建,用一个函数作为线程的执行体罢了
函数是程序语言的概念
线程只不过用函数调用创建,用一个函数作为线程的执行体罢了
|
函数调用 只能以串行的方式运行,1->2->3
1,2,3 分别代表函数,即在你的程序中只有一条数据流通路,
而用线程,择可以有多条数据流通路
1->
2->
3->
三个并发执行!!!
1,2,3 分别代表函数,即在你的程序中只有一条数据流通路,
而用线程,择可以有多条数据流通路
1->
2->
3->
三个并发执行!!!
|
线程可以这样理解:
如果是函数,运行结果
A:-----------call B ----------
B: --------ret
如果是线程:
A:----------起动线程B-------------------
B: -------------------
如果是函数,运行结果
A:-----------call B ----------
B: --------ret
如果是线程:
A:----------起动线程B-------------------
B: -------------------
|
以前SYS V 里根本就没有线程的概念,想要得到并行运算能力就要fork一个子进程(相当于现在的线程,但不是进程)。
后来POSIX标准添加了线程,才有了我们linux里现在所说的线程实现。
简单讲线程就是在一个进程内共享CPU时间片,这样在单CPU的机器上只会降低程序执行的效率,在拥有并行多处理器的系统中才能真正实现线程或进程的并行运行。
后来POSIX标准添加了线程,才有了我们linux里现在所说的线程实现。
简单讲线程就是在一个进程内共享CPU时间片,这样在单CPU的机器上只会降低程序执行的效率,在拥有并行多处理器的系统中才能真正实现线程或进程的并行运行。
|
http://www-900.ibm.com/developerWorks/cn/linux/thread/posix_thread1/index.shtml
|
真形象!好!