【问题标题】:How to create threads in c with contiguous ids?如何在 c 中创建具有连续 ID 的线程?
【发布时间】:2016-11-24 02:52:06
【问题描述】:

我正在尝试在 C 中创建具有连续 ID 号的线程。 例如,假设我想创建 10 个线程,然后我想给它们 1 到 10 的 id。稍后,我希望能够访问这些 id 并从线程函数中打印出来。这可行吗?

我知道这可能看起来很简单,但我还没有设法在任何地方找到解决方案。

谢谢

【问题讨论】:

    标签: c multithreading contiguous


    【解决方案1】:

    线程 ID 由操作系统或线程库创建。你无法控制它们会是什么。

    您不需要连续的 ID。创建一个数组并将每个线程的 ID 存储在数组中。然后就可以使用数组依次访问它们了。

    类似这样的东西(假设你使用 pthreads):

    pthread_t thread_list[100];
    int thread_count = 0;
    
    ...
    
    pthread_create(&thread_list[thread_count++], NULL, thread_function, NULL);
    

    【讨论】:

    • 谢谢。您能否详细说明最后一条评论:“创建一个数组并将每个线程的 ID 存储在数组中。然后您可以使用该数组按顺序访问它们。”再次感谢。
    • 我想实际输出线程号。因此,如果线程 55 正在运行。我想打印:来自线程的你好:55。这可能吗?
    • @OmarHijazi 如果你想让一个线程打印它自己的ID,你可以调用pthread_self来获取它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2015-01-18
    • 2019-01-08
    • 1970-01-01
    • 2018-07-26
    相关资源
    最近更新 更多