linux线程系列(2)linux线程分类

    线程按照其调度者可分为用户级线程和内核级线程两种

a)用户级线程:主要解决的是上下文切换的问题,其调度过程由用户决定;

b)内核级线程:由内核调度机制实现。

    现在大多数操作系统都采用用户级线程和内核级线程并存的方法。用户级线程要绑定内核级线程运行,一个进程中的内核级线程会分配到固定的时间片,用户级线程分配的时间片以内核级线程为准。默认情况下用户级线程和内核级线程是一对一,也可以多对一,这样实时性就会比较差。当cpu分配给线程的时间片用完后但线程没有执行完毕,此时线程会从运行状态返回到就绪状态,将cpu让给其它线程使用。

    linux用户级线程一般采用pthread线程库实现线程的访问与控制,由POSIX提出,具有良好的可移植性。Linux线程程序编译需要在gcc上链接库pthread。每个进程内部的不同线程都有自己的唯一标识(ID),线程标识只在它所属的进程环境中有效,线程标识是pthread_t数据类型。

    以下两个函数分别是判断两个线程是否有相同线程ID(是否是同一个线程)和返回自身线程的线程ID:

#include 
int pthread_equal(pthread_t, pthread_t);
返回: 相等返回非0,否则返回0
pthread_t pthread_self(void);
返回: 调用线程的线程ID



你可能感兴趣的:(c/c++,linux)