main函数是主线程吗

1、线程的概念:

线程是程序最基本的运行单位,而进程不能运行,所以能运行的,是进程中的线程。

2、线程是如何创建起来的:

进程仅仅是一个容器,包含了线程运行中所需要的数据结构等信息。一个进程创建时,操作系统会创建一个线程,这就是主线程,而其他的从线程,却要主线程的代码来创建,也就是由程序员来创建。

当一个程序启动时,就有一个进程被操作系统(OS)创建,与此同时一个线程也立刻运行,该线程通常叫做程序的主线程(Main Thread),因为它是程序开始时就执行的,如果你需要再创建线程,那么创建的线程就是这个主线程的子线程。每个进程至少都有一个主线程,在Winform中,应该就是创建GUI的线程。  主线程的重要性体现在两方面:1.是产生其他子线程的线程;2.通常它必须最后完成执行比如执行各种关闭动作。

3、究竟main函数是进程还是线程呢:

因为它们都是以main()做为入口开始运行的。 是一个线程,同时还是一个进程。在现在的操作系统中,都是多线程的。但是它执行的时候对外来说就是一个独立的进程。这个进程中,可以包含多个线程,也可以只包含一个线程。当用c写一段程序的话,就是在操作系统中起一个进程它包含一个线程。而当用java等开发一个多线程的程序的话,它在操作系统中起了一个进程,但它可以包含多个同时运行的线程。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网开发者交流社区

Node.js概要

1574
来自专栏一枝花算不算浪漫

[常见问题]Project facet Java versin 1.8 is not support.

3687
来自专栏康怀帅的专栏

iPXE 模式启动 CoreOS(简单、推荐使用)

iPXE 模式启动 CoreOS 方法比较简单,无需配置 PXE 所需的服务器,推荐大家使用。 准备 下载 ipxe.iso $ wget http://boo...

6155
来自专栏JavaEdge

Error running Tomcat8: Address localhost:1099 is already in use

这明显是1099端口已经被占用,解决办法如下: 第一步,命令提示符号,执行命令:

1651
来自专栏ytkah

finecms如何批量替换文章中的关键词?

  Finecms批量替换文章关键词要怎么操作呢,比如把关键词A换为B?Finecms是免费开源无商业限制的内容管理系统,个人在维护,但二次开发很灵活,我们可以...

3423
来自专栏difcareer的技术笔记

编译私有的Android SDK

某些原因需要自己编译一个Android SDK,比如放开某些API接口。本文记录一下编译过程。

742
来自专栏轻量级微服务

Github 更新自己 Fork 的项目

示例:https://github.com/ChinaSilence/spring-cloud-config-admin Fork => https://git...

742
来自专栏Python

linux每日命令(2):cd命令

说明:进入系统根目录,上面命令执行完后拿ls命令看一下,当前目录已经到系统根目录了

1203
来自专栏pangguoming

ubuntu12.04 安装配置jdk1.7

第一步:下载jdk-7-linux-i586.tar.gz wget -c http://download.oracle.com/otn-pub/java/jd...

3595
来自专栏后端云

挂载云硬盘

已有云主机id 27b31829-326f-4029-a537-bb327303a32c

4536

扫码关注云+社区

领取腾讯云代金券