福永论坛网站建设百度关键词搜索指数
福永论坛网站建设,百度关键词搜索指数,西部数码网站管理助手错误,东丰在线网站建设Linux系统编程#xff08;八#xff09;线程一、什么是线程#xff1f;二、Linux内核线程实现原理线程共享资源线程非共享资源线程优缺点线程控制原语一、什么是线程#xff1f;
LWP#xff1a;light weight process 轻量级的进程#xff0c;本质仍是进程(在Linux环境下…
Linux系统编程八线程一、什么是线程二、Linux内核线程实现原理线程共享资源线程非共享资源线程优缺点线程控制原语一、什么是线程
LWPlight weight process 轻量级的进程本质仍是进程(在Linux环境下)进程独立地址空间拥有PCB线程也有PCB但没有独立的地址空间(共享)区别在于是否共享地址空间Linux下 线程最小的执行单位 进程最小分配资源单位可看成是只有一个线程的进程。
二、Linux内核线程实现原理
类Unix系统中早期是没有“线程”概念的80年代才引入借助进程机制实现出了线程的概念。因此在这类系统中进程和线程关系密切。
轻量级进程(light-weight process)也有PCB创建线程使用的底层函数和进程一样都是clone从内核里看进程和线程是一样的都有各自不同的PCB但是PCB中指向内存资源的三级页表是相同的进程可以蜕变成线程在linux下线程最是小的执行单位进程是最小的分配资源单位线程可看做寄存器和栈的集合
代码如下示例
线程共享资源
文件描述符表每种信号的处理方式当前工作目录用户ID和组ID内存地址空间 (.text/.data/.bss/heap/共享库)
线程非共享资源
线程id处理器现场和栈指针(内核栈)独立的栈空间(用户空间栈)errno变量信号屏蔽字调度优先级
线程优缺点
优点
提高程序的并发性开销小数据通信、共享数据方便
缺点
库函数不稳定gdb无法调试对信号支持不好
线程控制原语
#include cstdio
#include pthread.h
#include unistd.h
#include stdlib.h
#include string.h
void* thrd_func(void* arg)
{printf(thread id %lu , pid %u \n,pthread_self(),getpid());return NULL;
}int main()
{pthread_t tid;int ret;printf(In main id %lu , pid %u \n, pthread_self(), getpid());retpthread_create(tid,NULL, thrd_func,NULL);if (ret ! 0){fprintf(stderr,pthread_create error :%s\n,strerror(ret));printf(pthread_create error:\n);exit(1);}sleep(1);printf(In main2 id %lu , pid %u \n, pthread_self(), getpid());return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91808.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!