linux中应用程序main函数中没有开辟进程的,它应该在那个进程中运行呢?

时间:2022-09-07 16:57:36

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

??

linux中应用程序main函数中没有开辟进程的,它应该在那个进程中运行呢?的更多相关文章

  1. 问题:C#控制台程序参数;结果:设置与读取C#控制台应用程序Main函数中的参数args

    设置与读取C#控制台应用程序Main函数中的参数args 在项目属性面版->调试->命令行参数设置.空格分隔.读取:string[] str = Environment.GetComman ...

  2. 多玩YY语音的面试题:C++中如何在main()函数之前执行操作?

    多玩YY语音的面试题:C++中如何在main()函数之前执行操作? 第一反应main()函数是所有函数执行的开始.但是问题是main()函数执行之前如何执行呢? 联想到MFC里面的 C**App类的t ...

  3. C/C++中如何在main()函数之前执行一条语句?

    在C语言中,如果使用GCC的话,可以通过attribute关键字声明constructor和destructor(C语言中如何在main函数开始前执行函数) #include <stdio.h& ...

  4. 转:iOS程序main函数之前发生了什么

    原文地址:http://blog.sunnyxx.com/2014/08/30/objc-pre-main/ 我是前言 一个iOS app的main()函数位于main.m中,这是我们熟知的程序入口. ...

  5. iOS程序main函数之前发生了什么

    我是前言 一个iOS app的main()函数位于main.m中,这是我们熟知的程序入口.但对objc了解更多之后发现,程序在进入我们的main函数前已经执行了很多代码,比如熟知的+ load方法等. ...

  6. Keil开发的ARM程序main函数之前的汇编分析

    Keil开发的ARM程序main函数之前的汇编分析 ——BIN文件中RW段的数据移动 系统平台: STM32系列STM32F103ZE,512KB内部FLASH,64KB片内存储; FLASH地址范围 ...

  7. C语言中的程序终止函数

    在C语言的标准库<stdlib.h>中提供了一些与正常或者不正常的程序终止有关的函数,下面分别对其进行简单介绍. 参考文献: [1] C和指针,P298,342 [2] C程序设计语言现代 ...

  8. go源文件中是否有main函数

    import (    "go/parser" "go/token"    "go/ast"  )  func HasMain(file s ...

  9. Linux下main函数启动过程【程序员自我修养笔记】【自用】

    1. 入口函数和程序初始化 1.1 程序从main开始吗? 当程序执行到main函数的第一行时,很多事情都已经完成了: [证1]如下是一段C语言代码: 代码中可以看到,在程序刚刚执行到main的时候, ...

随机推荐

  1. BeanUtils&period;copyProperties和PropertyUtils&period;copyProperties的使用区别

    http://caoyaojun1988-163-com.iteye.com/blog/1871316

  2. 002&period;ICMP--拼接ICMP包&comma;实现简单Ping程序&lpar;原始套接字&rpar;

    一.大致流程: 将ICMP头和时间数据设置好后,通过创建好的原始套接字socket发出去.目的主机计算效验和后会将数据原样返回,用当前时间和返回的数据结算时间差,计算出rtt. 二.数据结构: ICM ...

  3. ubuntu 16&period;04 vnc server

    安装方法 https://help.ubuntu.com/community/VNC/Servers#vino 系统默认自带的,通过搜索Remote Desktop来找到它 配置好之后,设定一下密码 ...

  4. 全球*专家为你解读:什么是真正的 DevOps?

    [编者按]本文是 Skytap 内容主编 Noel Wurst 对 DevOps Enterprise Summit (DOES)的不完全综述,内容包括了 Noel 和一些与会嘉宾的思考,旨在勾画 D ...

  5. javaScript高级程序设计笔记 1

    核心  ECMAScript 文档对象模型  DOM 浏览器对象模型 BOM 延迟脚本  defer typeof操作符      判断字符类型  返回   undefined  boolean  s ...

  6. ORACLE 查询近一天,近半小时内的数据

    SELECT 字段  FROM 表名  WHERE 时间字段  BETWEEN SYSDATE-1 AND SYSDATE; //查询一天内的数据 sysdate+1 加一天sysdate+1/24 ...

  7. pycharm安装pip报错的处理办法

    这几天在用pycharm的时候,发现安装软件的时候报 module 'pip' has no attribute 'main' ,后来综合网上的办法以及分析错误提示,原因是在于pycharm安装目录下 ...

  8. eureka集群基于DNS配置方式

    https://www.cnblogs.com/relinson/p/eureka_ha_use_dns.html   最近在研究spring cloud eureka集群配置的时候碰到问题:多台eu ...

  9. vue中的表单

    v-model指令实现表单双向绑定数据.触发文本框的input事件.一.文本框 <div id="J_app"> <p>{{ info }}</p&g ...

  10. HDU-1003 Max Sum&lpar;动态规划,最长字段和问题&rpar;

    Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...