linux的基础知识——线程

文章目录

        • 1.什么是线程?
        • 2.linux内核线程实现原理
        • 3.线程共享资源
        • 4.线程的非共享资源
        • 5.线程优缺点
        • 6.线程的控制原语
          • 6.1 pthread_self函数
          • 6.2 pthread_create函数
          • 6.3 程序:创建线程
        • 7.线程与共享
        • 8.pthread_exit线程退出函数

1.什么是线程?

linux的基础知识——线程_第1张图片

2.linux内核线程实现原理

linux的基础知识——线程_第2张图片linux的基础知识——线程_第3张图片

3.线程共享资源

linux的基础知识——线程_第4张图片

4.线程的非共享资源

linux的基础知识——线程_第5张图片

5.线程优缺点

linux的基础知识——线程_第6张图片

6.线程的控制原语

6.1 pthread_self函数

linux的基础知识——线程_第7张图片

6.2 pthread_create函数

linux的基础知识——线程_第8张图片linux的基础知识——线程_第9张图片

6.3 程序:创建线程
#include
#include
#include
#include

void *thrd_func(void *arg)
{
        printf("子进程ID:%u;子线程ID:%lu\n",getpid(),pthread_self());
}
int main()
{
        pthread_t tid;
        int ret;

        printf("主进程ID:%u;主线程ID:%lu\n",getpid(),pthread_self());
        ret = pthread_create(&tid,NULL,thrd_func,NULL);
        if(ret != 0){
                printf("pthread_create error\n");
                exit(1);
        }
        sleep(1);
        return 0;
}

7.线程与共享

linux的基础知识——线程_第10张图片

8.pthread_exit线程退出函数

linux的基础知识——线程_第11张图片

#include
#include
#include
#include

void *tfn(void *arg)
{
        int i;
        i = (int)arg;
        printf("i am %dth thread,thread_id:%lu\n",i+1,pthread_self());
        return NULL;
}

int main()
{
        int n=5,i;
        pthread_t tid;

        for(i=0;i<n;i++){
                pthread_create(&tid,NULL,tfn,(void *)i);
        }
        printf("i am main thread,thread id:%lu\n",pthread_self());

        pthread_exit(NULL);
}

你可能感兴趣的:(linux,内核,多线程,多进程,操作系统)