【问题标题】:Does every thread have its main function?每个线程都有它的主要功能吗?
【发布时间】:2020-11-17 03:46:22
【问题描述】:

每个线程都有自己的主函数吗?

我知道它有自己的堆栈,但是 main 函数呢(不一定是调用 main 的函数)。

例如,在创建线程时,我们将函数作为参数传递给新线程以运行它。

我试图搜索这个主题,但找不到答案。

【问题讨论】:

  • 线程可以并行运行。如果不是一段代码让它运行,你还会传递什么?你用的是什么编程语言?
  • @TonyTannous 所以每个线程都有自己执行的主函数?
  • Main 是程序的入口点。它是执行开始的地方。如果您想将传递的函数视为该线程的“主”,那就这样吧。
  • 你是什么意思,“它的own?” 你是问每个线程是否必须有它自己的unique main 函数?这在我听说过的任何编程语言或环境中都不是这样。您可以通过调用 same 主函数来拥有任意数量的线程。

标签: multithreading operating-system main


【解决方案1】:

引用此article

在多线程进程中,所有进程的线程共享相同的内存并打开文件。在共享内存中,每个线程都有自己的堆栈。每个线程都有自己的 instruction pointer 和寄存器。由于内存是共享的,需要注意的是进程中的线程之间没有内存保护。

因此,«main»函数可以被称为线程开始执行的函数,即最初加载到instruction pointer中的第一条指令的地址。值得注意的是,在线程中执行的第一个代码可以是标准库中的例程,该例程初始化然后调用用户提供的函数,在这种情况下可以称为 «main»。 但这不是一个常用术语,通常简称为thread function

但是,有一个概念,main thread。这是程序(进程)启动时执行的第一个线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 2021-09-25
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多