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
??
linux中应用程序main函数中没有开辟进程的,它应该在那个进程中运行呢?的更多相关文章
- 问题:C#控制台程序参数;结果:设置与读取C#控制台应用程序Main函数中的参数args
设置与读取C#控制台应用程序Main函数中的参数args 在项目属性面版->调试->命令行参数设置.空格分隔.读取:string[] str = Environment.GetComman ...
- 多玩YY语音的面试题:C++中如何在main()函数之前执行操作?
多玩YY语音的面试题:C++中如何在main()函数之前执行操作? 第一反应main()函数是所有函数执行的开始.但是问题是main()函数执行之前如何执行呢? 联想到MFC里面的 C**App类的t ...
- C/C++中如何在main()函数之前执行一条语句?
在C语言中,如果使用GCC的话,可以通过attribute关键字声明constructor和destructor(C语言中如何在main函数开始前执行函数) #include <stdio.h& ...
- 转:iOS程序main函数之前发生了什么
原文地址:http://blog.sunnyxx.com/2014/08/30/objc-pre-main/ 我是前言 一个iOS app的main()函数位于main.m中,这是我们熟知的程序入口. ...
- iOS程序main函数之前发生了什么
我是前言 一个iOS app的main()函数位于main.m中,这是我们熟知的程序入口.但对objc了解更多之后发现,程序在进入我们的main函数前已经执行了很多代码,比如熟知的+ load方法等. ...
- Keil开发的ARM程序main函数之前的汇编分析
Keil开发的ARM程序main函数之前的汇编分析 ——BIN文件中RW段的数据移动 系统平台: STM32系列STM32F103ZE,512KB内部FLASH,64KB片内存储; FLASH地址范围 ...
- C语言中的程序终止函数
在C语言的标准库<stdlib.h>中提供了一些与正常或者不正常的程序终止有关的函数,下面分别对其进行简单介绍. 参考文献: [1] C和指针,P298,342 [2] C程序设计语言现代 ...
- go源文件中是否有main函数
import ( "go/parser" "go/token" "go/ast" ) func HasMain(file s ...
- Linux下main函数启动过程【程序员自我修养笔记】【自用】
1. 入口函数和程序初始化 1.1 程序从main开始吗? 当程序执行到main函数的第一行时,很多事情都已经完成了: [证1]如下是一段C语言代码: 代码中可以看到,在程序刚刚执行到main的时候, ...
随机推荐
- L009-oldboy-mysql-dba-lesson09
L009-oldboy-mysql-dba-lesson09 mysql> grant replication salve,replication client on *.* to ‘repl_ ...
- mysql配置优化测试
http://bjlfp.blog.163.com/blog/static/77368461201211695924524/ 感觉真不错啊.观察几天看看
- 五个免费UML建模工具推荐
UML工具很多是商用的,价格不菲:而免费的UML建模工具,功能完善的很少.以下推荐的是五个免费的UML建模工具,相对而言还算功能比较不错. 1.免费UML建模工具推荐:JUDE – community ...
- Jxl操作excel的demo
网上很多例子,都是用Jxl读或者写excel,本文实现的功能就是将数据源in.xls的第几行第几列数据写入到out.xls的第几行第几列,不覆盖out.xls其他原有的数据. 需要导入的包:jxl.j ...
- 在MVVMLight框架的ViewModel中实现NavigationService
网上已经有很多方法了,比如通过Messenger来实现等等.这里我只讲述一种我比较喜欢的方法,因为它很方便 首先定义一个ViewModel基类,将所有ViewModel子类继承这个基类.在基类中定义 ...
- Eclipse中propedit插件安装(解决property中文问题)
Eclipse Help--Install New Software... Add... propedit -- http://propedit.sourceforge.jp/eclipse/up ...
- Unity3d之Http通讯GET方法和POST方法
(一)GET方法 IEnumerator SendGet(string _url) { WWW getData = new WWW(_url); yield return getData; if(ge ...
- javascript面向对象思想2
上篇说到面向对象可以帮我们梳理页面的逻辑的文章(http://www.cnblogs.com/hetaojs/p/6024013.html),很多朋友看了说我这种写法是初级的面向对象小儿科,确实是初级 ...
- 使用maven 命令运行项目
安装好maven3 配置好环境变量后, 输入mvn -v 查看安装是否成功, 然后导入maven项目, 选择import 导入选择Exsting Maven Projects, 接下来就准备运行一下m ...
- Mac下安装Redis图解教程
去redis官网(http://redis.io/download)自行下载安装包解压缩到本地文件夹,比如放在Mac应用程序文件夹(/Applications/),在终端进入redis文件夹. 需要进 ...