Pthreads เป็นมาตรฐาน IEEE 1003.1c สำหรับการสร้างและซิงโครไนซ์เธรดในระบบ UNIX/Linux/macOS ใช้ API แบบ C
โครงสร้างหลัก
pthread_create()สร้างเธรดใหม่pthread_join()รอเธรดจบการทำงานpthread_exit()ออกจากเธรด- ข้อมูลร่วมกัน (global) แชร์ระหว่างเธรด
ตัวอย่าง: คำนวณผลรวม 1 ถึง N ในเธรดแยก
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
int sum = 0;
void *runner(void *param) {
int upper = atoi((char*)param);
for (int i = 1; i <= upper; i++) sum += i;
pthread_exit(0);
}
int main(int argc, char *argv[]) {
if (argc != 2) { fprintf(stderr, "usage: %s \n", argv[0]); return -1; }
if (atoi(argv[1]) < 0) { fprintf(stderr, "Must be >= 0\n"); return -1; }
pthread_t tid; pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_create(&tid, &attr, runner, argv[1]);
pthread_join(tid, NULL);
printf("Sum = %d\n", sum);
return 0;
}
คอมไพล์
gcc -pthread program.c -o program
รัน
./program 10 → Sum = 55