线程的创建

简介: 线程的创建

函数 pthread_create() 用于在一个进程中创建一个线程。语法如下:

#include <pthread.h>
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
                   void *(*start_routine)(void *), void *arg);点击复制复制失败已复制


函数参数 thread 表示新创建的线程的标识符,或者成为线程的 ID 。参数 attr 指向一个 pthread_attr_t 类型的结构体,用以指定新创建的线程的属性(如线程栈的位置和大小、线程调度策略和优先级以及线程的状态),如果 attr 被设置为 NULL ,则线程将采用默认的属性。参数 start_routine 则是该函数的重点关注对象,通过函数原型可以看出,该参数为函数指针,因此该参数只须传入函数名即可。需要注意的是:传入的函数名并不等同于一般的程序中在主函数中调用子函数。他是线程的执行函数,通俗的说,线程执行的任务将封装在此函数中。参数 arg 作为仅有的参数,用于向第三个参数 start_routine 所指向的函数中传参。


pthread_create() 函数的参数 thread 其类型为 pthread_t ,本质上是一个经强制转化的无符号长整形的指针。一个线程可以通过 pthread_self() 来获取自己的 ID

#include <pthread.h>
pthread_t pthread_self(void);
目录
相关文章
|
8月前
|
Linux
一个进程最多可以创建多少个线程基本分析
一个进程最多可以创建多少个线程基本分析
478 1
|
2月前
|
安全 Java 调度
线程的四种创建方式
【10月更文挑战第22天】在多线程编程中,还需要注意线程安全、死锁等问题,以确保程序的正确性和稳定性。通过合理地运用线程创建方式和相关技术,我们可以充分发挥多线程的优势,提高程序的性能和并发处理能力。
|
4月前
|
缓存 C语言
线程的创建过程
【9月更文挑战第15天】线程是由内核和用户态协同实现的机制。`pthread_create` 函数在 Glibc 中定义,首先处理线程属性参数,如栈大小,默认值或传入值。每个线程有一个 `pthread` 结构来维护状态。创建线程时,需要分配线程栈,并进行以下操作:获取栈大小、设置保护区域、缓存管理、内存映射、栈初始化及保护、填充 `pthread` 结构并管理栈缓存。最终通过 `create_thread` 函数调用 `clone` 系统调用创建线程,共享进程数据结构
|
Java API 调度
线程的创建和使用
线程的创建和使用
63 0
线程有哪些状态?线程的生命周期?
线程有哪些状态?线程的生命周期?
67 0
|
C++
线程的2种创建方式
当一个类继承了Thread类,该类就可以当作线程使用。 run方法其实是一个普通方法,是Runnable接口的一个方法。 Thread类也是进行了重写。 真正实现多线程的start方法中的start0方法。 这是一个本地native方法,由c/c++实现。
88 0
|
Java 调度
进程和线程、实现多线程的两种方式、设置获取线程名称、线程优先级及线程控制
进程和线程、实现多线程的两种方式、设置获取线程名称、线程优先级及线程控制的简单示例
140 1
|
设计模式 监控 安全
Java多线程(完整版)、基本概念:程序、进程、线程、线程的创建和使用、线程的生命周期、线程的同步、线程的通信、JDK5.0新增线程创建方式、wait(),notify(),notifyAll()
Java多线程(完整版)、基本概念:程序、进程、线程、线程的创建和使用、线程的生命周期、线程的同步、线程的通信、JDK5.0新增线程创建方式、wait(),notify(),notifyAll()
Java多线程(完整版)、基本概念:程序、进程、线程、线程的创建和使用、线程的生命周期、线程的同步、线程的通信、JDK5.0新增线程创建方式、wait(),notify(),notifyAll()