lesson31

为什么栈加栈大小 malloc是堆向上增长而 栈向下增长,起始地址是最上面的高地址。;
看代码这块testthread,自己都能调用clone,那库当然可以封装
mmap
可以自己用,将物理地址映射到虚拟地址返回,也可以把相同这块内存映射到另一个进程然后返回,或者将磁盘的内容存到物理内存,那么以后就不需要fd,只需要用虚拟地址就可以访问磁盘文件,,可以自己申请空间,可以进程间通信也可以文件映射
线程执行代码区我们指定的代码,用的参数占结构啥的是共享区的
看课件附录6-2
看代码,独立的栈其实也能访问,实际上每一个线程 都能访问另一个线程内容栈,因为资源都是共享,原则上只要不拿指针乱指,每个线程的站结构只有自己知道,所以说站结构是独占的。
看代码,线程封装
可以提前分离之后分离,不管提前之后,只要被分离了就return,如果已经运行了,直接调用pthread_detach主动分离,如果没有运行直接把标志位置一,
因为在start后面就会判断,所以从今往后创建线程时候,他自己就可以 detach,只设置标记位,再去创建就被分离了,
看外面的threadcc代码,资源共享不会写时拷贝


加了pthread之后这个变量就不会在已初始化数据段定义了,谁用会把这个变量在线程局部存储里存一份。
setname_up其实就是写进进程的局部存储,get也需要tid,因为都需要局部存储的内容
线程的同步与互斥
看代码