linux:在main函数中创建了两个线程,那么谁是主线程,是main函数吗,还是其他的?
1个回答
展开全部
在主函数之前创建线程?你是说在主函数返回之前创建线程,还是说主函数执行之前创建线程?
线程是程序最基本的运行单位,而进程不能运行,所以能运行的,是进程中的线程。进程仅仅是一个容器,包含了线程运行中所需要的数据结构等信息。一个进程创建时,操作系统会创建一个线程,这就是主线程,而其他的从线程,却要主线程的代码来创建,也就是由程序员来创建。
一般地,线程的调度(也就是什么时候运行,什么时候暂停运行)由操作系统来负责,但你也可以显式地挂起其他的线程,或继续其他线程的运行。
对于线程,你可以把它看作是一个运行的轨迹,而多个线程,你可以看作是你的程序的不同的代码在并行地运行,而不是串行的运行(当然,实际上对于单CPU来说,多线程也是串行运行的,不过从宏观上来看,多线程是并行执行的),也就是说,你的几个线程在同时执行任务。这样一来,你就可以让不同的线程来执行不同的任务,它们之间互相不干扰,比如你可以创建一个线程用来响应界面的消息,另一个线程来做实际的工作,这样就不会由于需要计算的东东太多而导致界面失去响应,看上去跟死了一样了。
线程是程序最基本的运行单位,而进程不能运行,所以能运行的,是进程中的线程。进程仅仅是一个容器,包含了线程运行中所需要的数据结构等信息。一个进程创建时,操作系统会创建一个线程,这就是主线程,而其他的从线程,却要主线程的代码来创建,也就是由程序员来创建。
一般地,线程的调度(也就是什么时候运行,什么时候暂停运行)由操作系统来负责,但你也可以显式地挂起其他的线程,或继续其他线程的运行。
对于线程,你可以把它看作是一个运行的轨迹,而多个线程,你可以看作是你的程序的不同的代码在并行地运行,而不是串行的运行(当然,实际上对于单CPU来说,多线程也是串行运行的,不过从宏观上来看,多线程是并行执行的),也就是说,你的几个线程在同时执行任务。这样一来,你就可以让不同的线程来执行不同的任务,它们之间互相不干扰,比如你可以创建一个线程用来响应界面的消息,另一个线程来做实际的工作,这样就不会由于需要计算的东东太多而导致界面失去响应,看上去跟死了一样了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询