首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux中多线程和多进程的执行顺序有关问题,初学,请问几个小问题

2013-06-26 
linux中多线程和多进程的执行顺序问题,初学,请教几个问题(一)多进程(假设父进程创建了一个子进程):fork()

linux中多线程和多进程的执行顺序问题,初学,请教几个问题
(一)多进程(假设父进程创建了一个子进程):
     
    fork()后,父进程和子进程谁先进行是由系统的调度算法决定的。这个没有问题。
    那么,问题是:
    (1)程序运行过程中,(书中解释)“父进程和子进程争夺CPU,抢到CPU者执行,另一个挂起等待”,那么父进程和子进程是否会出现交替执行各自的部分代码(不是全部代码)的情况?
    (2)而且在用户看来,执行哪个进程是随机的?

(二)多线程:
    看了些资料,如果主线程没有空闲或者没有等待,新建的线程是不会运行的。这个没有问题。
    (1)那么,新建的几个线程在运行期间,是不是交替执行的呢,而且会出现每次只执行了本线程部分代码,而不是全部的情况?
    (2)在用户看来,执行哪个进程是随即的吗?(根据是CPU在不同线程之间不停交替)

刚刚接触这两个概念,求解答~~~~~~~ linux 多线程 多进程
[解决办法]
这些和系统调度算法,及系统当前负载有关.
并不一定要交替执行,还可以并行,比如多核时.当然多核时,也可能出现交替..
这都是不确定的,所以可以认为是随机的, 至少程序不要依赖于这种调度相关的东西..
在linux操作系统看来,对线程和进程的调度是一样的.

热点排行