转: pthread_create()

pthread_create() 函数是 POSIX 线程库中的一个函数,用于创建一个新的线程。该函数的原型如下:

```c

int pthread_create(pthread_t *thread, const pthread_attr_t *attr,

void *(*start_routine)(void*), void *arg);

```

参数说明:

- `thread`:指向线程标识符的指针变量,用于存储新线程的标识符。

- `attr`:指向线程属性的指针变量。可以为 NULL,表示使用默认属性。

- `start_routine`:指向线程函数的指针。新线程将从该函数的起始地址开始执行。

- `arg`:传递给线程函数 `start_routine` 的参数。

`pthread_create()` 函数成功创建新线程时,返回 `0`,否则返回一个非零的错误编号,表示创建线程失败。

在创建线程之后,新线程会立即启动并开始执行线程函数。线程函数的原型如下:

```c

void *start_routine(void *arg);

```

参数 `arg` 是通过 `pthread_create()` 函数传递给线程函数的参数。线程函数的返回值是一个 `void*` 类型的指针。

下面是一个简单的示例,演示了如何使用 `pthread_create()` 函数创建一个新线程:

```c

#include

#include

void *print_message(void *message) {

printf("%s\n", (char *) message);

pthread_exit(NULL);

}

int main() {

pthread_t thread;

char *message = "Hello, thread!";

int ret;

ret = pthread_create(&thread, NULL, print_message, (void *) message);

if (ret) {

printf("Failed to create thread\n");

return 1;

}

pthread_join(thread, NULL);

return 0;

}

```

在上面的示例中,我们定义了一个线程函数 `print_message`,它接收一个参数 `message`,并打印该消息。在主函数中,我们声明了一个新的线程标识符 `thread`,并调用 `pthread_create()` 函数创建了一个新线程。如果创建线程成功,则打印消息并等待线程结束。

以上是对 `pthread_create()` 函数的简要介绍和使用方法的示例说明,希望能对你有帮助。如果你有更多关于该函数的问题,或者需要更详细的介绍,请告诉我。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(86) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部