zoukankan      html  css  js  c++  java
  • linux中应用程序main函数中没有开辟进程的,它应该在那个进程中运行呢?

    1.main函数是一个进程还是一个线程?

    不知道你是用c创建的,还是用java创建的。
    因为它们都是以main()做为入口开始运行的。 

    是一个线程,同时还是一个进程。
    在现在的操作系统中,都是多线程的。但是它执行的时候对外来说就是一个独立的进程。
    这个进程中,可以包含多个线程,也可以只包含一个线程。

    当用c写一段程序的话,就是在操作系统中起一个进程它包含一个线程。

    而当用java等开发一个多线程的程序的话,它在操作系统中起了一个进程,但它可以包含多个同时运行的线程。

    你起一个CS游戏,这上CS游戏在操作系统中就是一个进程。

    但是这个游戏一边在打枪,一边人在走动,一边还有音乐 ,
    打枪 , 走动 , 音乐 等都是一些线程。

    线程不是由进程决定了。
    这样会不会明白一点。

    也就是说:你在操作系统中启动的任一个独运行的程序或者软件都是一个进程。
    包括你在Linux中运行top时,它也是一个进程(当然很多人说成是线程),它有独立的进程ID,
    可以用ps -ef| grep top的方式查看,并可以用kill 进程ID杀掉的。

    但是这个进程包括几个线程,是由你的需求决定的,在写程序时由程序逻辑决定的;
    而这些线程是包含在这个进程中的,而且这些线程他们共用CPU资源,在工作的过程
    中需要不断的进行切换,轮换CPU时断,而各个线程在进行轮换时会共用进程的一些共享区域(或者交换空间)。其它的没有什么。

    2.在Linux中编程,在main主函数中调用fork(),创建新进程。谁是父进程?是main函数所在的进程为父进程吗?谢谢!

    是的. main()函数所在的进程是父进程, 用fork()创建的是子进程.

    fork返回值大于0的是父进程,否则是子进程

    http://www.360doc.com/content/08/1123/13/36491_1984855.shtml

    http://www.cnblogs.com/skynet/archive/2010/10/30/1865267.html

    ??

  • 相关阅读:
    前端与算法 leetcode 344. 反转字符串
    JavaScript闭包使用姿势指南
    前端与算法 leetcode 48. 旋转图像
    前端与算法 leetcode 36. 有效的数独
    前端与算法 leetcode 1. 两数之和
    前端与算法 leetcode 283. 移动零
    前端与编译原理 用js去运行js代码 js2run
    前端与算法 leetcode 66. 加一
    前端与算法 leetcode 350. 两个数组的交集 II
    前端与算法 leetcode 26. 删除排序数组中的重复项
  • 原文地址:https://www.cnblogs.com/Ph-one/p/4593770.html
Copyright © 2011-2022 走看看