多线程函数除了要包含头文件pthread.h外还必须要包含lib库pthread
pthread_create是创建线程,但具体的线程里面做什么事是在void *create(void *arg)里,这个函数名是自己任意区的,但返回值和参数一般都是void*类型,因为pthread_create函数的定义就是这样
int pthread_create(pthread_t*restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg)
#include <unistd.h>
unsigned alarm(unsigned secs)
/*returns secs left on previous alarm or zero if none */
alarm也称为闹钟函数,它可以在进程中设置一个定时器,当指定的时间到时,它向进程发送SIGALRM信号。需要注意的是,一个进程只能有一个定时器。当报警开始时,会发送一个SIGALRM,子进程继承其父进程的报警时钟值,但实际的时钟并不共享。执行exec后,报警时钟仍然保持其设置。
alarm按照secs指定的秒数来设置时钟,如果secs为0,则关闭报警时钟,这样做是很有必要的,如果recvfrom函数读到数据,没到设定时钟值时就返回了,而你又忘记关闭报警时钟的话,那么它将在不久后报警,在计算机看来,1秒都是一个很漫长的时间,1秒后的报警可能会造成本进程中其他函数执行的中断,因为一个进程只有一个定时器,所以使用完定时器后,一定要关闭定时器。
实例代码:
详细代码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)