在C语言中使用多线程
1、C语言多线程需要使用头文件pthread.h
2、使用pthread_t来创建线程id,使用pthread_create创建线程。线程创建完会进行执行。、
pthread_create函数有四个参数,
第一个参数是指向线程标识符的指针,也就是指向线程id。
第二个参数用来设置线程属性,一般为NULL。
第三个参数是线程运行函数的起始地址,也就是该线程需要启动的函数。
第四个参数是运行函数的参数,进行传参,一般可设置为NULL。
3、线程创建完毕后有返回值,返回值为0即为创建成功,否则创建失败。
4、pthread_exit函数是用来终止线程的。线程的退出有显式退出和隐式退出,pthread_exit函数用来进行显式退出。
pthread_exit函数有一个参数,是函数的返回代码。
5、SuspendThread函数在windows环境下是暂停线程的执行 参数是该线程的id
6、ResumeThread函数在windows环境下是继续执行线程 参数是该线程的id
7、pthread_join函数,这个函数用来等待一个线程的结束,以阻塞的方式等待thread指定的线程结束,如果不结束会一直等待。
参数有两个,第一个参数填写标识符,即是线程的iD,第二个参数是用户自定义的指针,用来存储被等待线程的返回值,可以为NULL。
函数返回值为int型,返回0表示成功,返回其他值即为失败。
8、在多线程中常常会出现线程间数据共享的问题,共享的数据在使用的时候可能会出现数据不一致问题,比如A和B两个线程同时使用共享数据t,
如果一个进行加操作,一个进行减操作,最后的结果可能会出现错误的情况。怎么避免这种情况呢&