POSIX定时器:
最强大的定时器接口来自POSIX时钟系列,其创建、初始化以及删除一个定时器的行动被分为三个不同的函数:
timer_create()(创建定时器)
timer_settime()(初始化定时器)
timer_delete(销毁它)
关于POSIX定时器,可参考这篇文章,写的很详细,在此不赘述。
下面是看论坛是发现的问题,记录在此了:
linux多线程环境下gettid() pthread_self() 两个函数都获得线程ID
linux使用进程模拟线程,gettid 函数返回实际的进程ID,pthread_self 函数返回 pthread_create创建线程时的ID。
到底那个是线程的ID呢,一个线程不能有两个ID吧?
参考:
gettid是内核中的线程的ID, pthread_self是POSIX thread ID 。
线程库实际上由两部分组成:内核的线程支持+用户态的库支持(glibc),Linux在早期内核不支持线程的时候,glibc就在库中(用户态)以纤程(就是用户态线程)的方式支持多线程了,POSIX thread只要求了用户编程的调用接口对内核接口没有要求。linux上的线程实现就是在内核支持的基础上以POSIX thread的方式对外封装了接口,所以才会有两个ID的问题。
如果想编写 可移植的 多线程代码,代码可运行于 Solaris、FreeBSD、Li