哪些属于线程共享?线程和进程的区别是什么?

1.线程运行的本质就是函数的执行,函数运行时的信息保存在栈帧中,包括函数的返回值、使用的局部变量、寄存器信息等,因此每个进程都有自己独立的、私有的栈区

2.程序计数器、函数运行使用的寄存器组的值也是线程私有的

3. 每个线程用户独立的线程ID、独立的调度优先级、错误返回码

线程共享的资源

1. 多个线程共享进程的代码区,代码区存放的是编译后的可执行机器指令,即任何一个函数都可以放到线程中去执行

2. 多个线程共享进程的数据区,即任何一个线程都可以访问全局变量和静态变量

3. 多个线程共享进程的堆区,尽管栈区是线程的私有数据,但栈区没有添加任何保护机制,一个线程的栈区对其他线程也是可见的

4.动态链接库:若一个程序是动态链接的,那么其地址空间中有一部分包含的就是动态链接库,该部分也是被多个线程共享的

5.文件:如果程序运行时打开了一些文件,那么进程地址空间中保存了打开的文件信息,进程打开的文件也属于线程共享的资源

6. 线程共享当前工作目录、以及用户ID和组ID

线程和进程的区别有:

1、定义不一样,进程是执行中的一段程序,而一个进程中执行中的每个任务即为一个线程。

2、一个线程只可以属于一个进程,但一个进程能包含多个线程。

3、线程无地址空间,它包括在进程的地址空间里。

4、线程的开销或代价比进程的小。