一、线程安全
一个函数被称为线程安全的(thread-safe),当且仅当被多个并发进程反复调用时,它会一直产生正确的结果。如果一个函数不是线程安全的,我们就说它是线程不安全的(thread-unsafe)。
例如:
要在主线程中根据空格分隔char buff[]=”1 2 3 4 5 6 7 8 9 0”;,并将分隔的数据输出,每隔1S中分一次,同样在函数线程中分隔char buff[]=”a b c d e f g h i j k”;并将分隔的数据输出,每隔1S中分一次。
代码示例:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <unistd.h>
#include <pthread.h>
void *fun(void *arg)
{
char buff[]="a b c d e f g h i j k";
char *tmp=strtok(buff,