main函数是主线程吗

1、线程的概念:

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

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

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

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

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术专栏

SpringMVC添加异步请求支持

注意web.xml应用需在所有的servlet和filter配置加上<async-supported>true</async-supported>

641
来自专栏Golang语言社区

NSQ的golang客户端简单使用

NSQ 是由国外的一个短链服务商bitly使用golang开发的一个消息队列系统,正好使用到了这个东西,在这里简单的记录下。 获取客户端 nsq的golang客...

3707
来自专栏Golang语言社区

几种服务器端IO模型的简单介绍及实现(上)

一些概念: 同步和异步 同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪,而异步是指用户进程...

3318
来自专栏Python绿色通道

Python线程与进程的一些概念

概念 进程就是一个程序在一个数据集上的一次动态执行过程。 进程一般由程序、数据集、进程控制块三部分组成。我们编写的程序用来描述进程要完成哪些功能以及如何完成;数...

703
来自专栏别先生

WARN conf.FlumeConfiguration: Could not configure sink sink1 due to: No channel configured for sink

3256
来自专栏javathings

Java 线程状态有哪些?

1. 线程 start 方法执行后,并不表示该线程运行了,而是进入就绪状态,意思是随时准备运行,但是真正何时运行,是由操作系统决定的,代码并不能控制,

873
来自专栏精讲JAVA

Http 持久连接与 HttpClient 连接池

HTTP协议是无状态的协议,即每一次请求都是互相独立的。因此它的最初实现是,每一个http请求都会打开一个tcp socket连接,当交互完毕后会关闭这个连接。

1383
来自专栏奔跑的蛙牛技术博客

java获取web数据和发送E-mail

java -classpath .:path/to/mail.jar path/to/message.txt 运行程序

975
来自专栏javathings

线程的 yield 方法有什么用?

单词 yield 有一个中文意思是车辆或行人的让行,线程中的 yield 也是这个意思,表示该线程主动失去 CPU 调度,进入就绪状态,让优先级更高的线程先运行...

621
来自专栏F-Stack的专栏

用DPDK rte_ring实现多进程间通信

F-Stack是多进程架构,去除了进程间资源共享来达到更高的性能,但还是有部分控制信息需要在进程间同步,使用rte_ring让多个进程间的通信变得十分简单。 r...

4257

扫码关注云+社区