gpt4 book ai didi

c++ - 一个类中的pthread

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:24 25 4
gpt4 key购买 nike

大家好,考虑到下面的代码(用g++ -lpthread thread_test.cpp 编译),我如何从“thread_function”中知道我在第几线程?如果您有任何其他建议,请告诉我。

谢谢!

thread_test.cpp:

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>

class A {
public:
A();
void run();

private:
static void* thread_function( void *ptr );
pthread_t m_thread1, m_thread2;

static int m_global;
};

int A::m_global = 0;

A::A() {
int ret1 = pthread_create( &m_thread1, NULL, &A::thread_function, this );
int ret2 = pthread_create( &m_thread2, NULL, &A::thread_function, this );
}

void A::run() {
while ( 1 ) {
printf( "parent incrementing...\n" );
m_global++;
sleep( 2 );
}
}

void* A::thread_function( void *ptr ) {
printf( "I'm thread ?\n" );

while ( 1 ) {
printf("thread global: %d\n", m_global );
sleep( 1 );
}
}

int main() {
A a;
a.run();

return 0;
}

最佳答案

您可以使用 pthread_self() 函数。

关于c++ - 一个类中的pthread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1413538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com