Java中创建线程三种方式:
- 继承Thread类创建线程类;
- 通过Runnable接口创建线程类;
- 通过Callable和Future创建线程。
Native 中支持的线程标准是 POSIX 线程,它定义了一套创建和操作线程的 API 。
我们可以在 Native 代码中使用 POSIX 线程,就相当于使用一个库一样,首先需要包含这个库的头文件:
#include <pthread.h>
这个头文件中定义了很多和线程相关的函数,这里就暂时使用到了其中创建线程部分内容。
创建线程
POSIX 创建线程的函数如下:
int pthread_create(
pthread_t* __pthread_ptr,
pthread_attr_t const* __attr,
void* (*__start_routine)(void*),
void* arg);
它的参数对应如下:
- __pthread_ptr 为指向 pthread_t 类型变量的指针,用它代表返回线程的句柄。
- __attr 为指向 pthread_attr_t 结构的指针,可以通过该结构来指定新线程的一些属性,比如栈大小、调度优先级等,具体看 pthread_attr_t 结构的内容。如果没有特殊要求,可使用默认值,把该变量取值为 NULL 。 第三个参数为该线程启动程序的函数指针,也就是线程启动时要执行的那个方法,类似于 Java Runnable 中的 run 方法,它的函数签名格式如下: