一.线程操作
1 . 线程于进程的关系可类比成手指和手的关系。
线程相当于手指,进程相当于手。及进程的存在才有了线程,线程就是进程执行程序时对资源调度的基本单位。
2.线程创建时常用的函数。
3.互斥锁和读写锁目的是保护数据在某些时候不被其他线程所使用造成数据混乱(因cpu会抢占资源)。
互斥锁:pthread_mutex_t 变量。
pthread_mutex_init(变量地址);初始化
phtread_mutex_lock(变量地址);枷锁
phtread_mutex_trylock(变量地址);尝试加锁
phtread_mutex_unlock(变量地址);解锁
锁中再加锁会死锁。
读写锁:pthread_rwlock_t 变量。
pthread_rwlock_init(变量地址,NULL);初始化
phtread_rwlock_destory(变量地址);销毁锁
phtread_rwlock_rdlock(变量地址);加读锁
phtread_rwlock_wrlock(变量地址);加写锁
phtread_rwlock_tryrdlock(变量地址);尝试加锁
phtread_rwlock_trywrlock(变量地址);尝试加锁
phtread_rwlock_unlock(变量地址);解锁
读锁时共享,写锁时独占,先写后读。
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
pthread_mutex_t m;//线程锁变量
void*start_routine1(void *arg)//线程函数
{
int i;
for(i=0;i<arg;i++)
{
printf("pthread1 %d\n",(int )i);