読者です 読者をやめる 読者になる 読者になる

「C」スレッド生成するサンプル

なんとなく C でスレッド生成してみたくなったので書いてみました。
なんか必要になった時に、また時間とられるのイヤなので、とりあえずメモとして残しておきます。

■ threadTest.c

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>
#include <sys/syscall.h>
#include <sys/types.h>

void *test(void *s);

void main(void)
{
    pthread_t p1, p2;
    char *s1 = "hoge uga !!";
    char *s2 = "oro ahe !!";
    
    if((pthread_create(&p1, NULL, test, (void *)s1)) != 0) {
        printf("1 : thread create fail !!\n");
        exit(1);
    }
    if((pthread_create(&p2, NULL, test, (void *)s2)) != 0) {
        printf("2 : thread create fail !!\n");
        exit(1);
    }
    
    if((pthread_join(p1, NULL)) != 0) {
        printf("1 : thread join fail !!\n");
        exit(1);
    }
    if((pthread_join(p2, NULL)) != 0) {
        printf("2 : thread join fail !!\n");
        exit(1);
    }
    
    exit(0);
}

void *test(void *s)
{
    int i;
    char *ss;
    ss = (char *)s;
    for(i = 0; i < 5; i++) {
        printf("%ld : %s\n",syscall(SYS_gettid), ss);
        sleep(1);
    }
}


C は書き慣れてないせいか難しく感じます・・・
以上です。

[環境情報]
Ubuntu 14.04
gcc 4.8.2

広告を非表示にする