linux编程----线程编程
概述:
1:程是调度的最小单位;进程是资源分配的最小单位。
2:进程中的线程是共享全局变量以及内存的。
3:共享:指令,除去私有数据,signal处理方式及其例程,运行环境
来源:http://www.cnblogs.com/forstudy/archive/2012/04/05/2433853.html
函数介绍:
说明:
用于获取本线程的ID号----ID就是一个长无符号整型
------------------------------分割线--------------------------------
说明:
用于判断线程ID是否相等
------------------------------分割线--------------------------------
说明:
创建线程,其中的线程函数就是线程的入口处。创建后线程就会启动了。
------------------------------分割线--------------------------------
说明:
线程退出函数
------------------------------分割线--------------------------------
说明:
等待线程th执行完。。
------------------------------分割线--------------------------------
说明:
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,NULL);通过此函数设置可以被其他线程取消
通过上述函数可以向该线程提出取消线程的请求。
同步方式:
互斥锁函数
互斥锁初始化:pthread_mutex_init()
互斥锁上锁:pthread_mutex_lock()
互斥锁判断上锁:pthread_mutex_trylock()
互斥锁解锁:pthread_mutex_unlock()
消除互斥锁:pthread_mutex_destroy()
信号量函数
sem_init() 创建一个信号量,并初始化它
sem_wait()和sem_trywait(): P操作,在信号量大于零时将信号量的值减一
•区别: 若信号量小于零时,sem_wait()将会阻塞线程,sem_trywait()则会立即返回
sem_post(): V操作,将信号量的值加一同时发出信号来唤醒等待的线程
sem_getvalue(): 得到信号量的值
sem_destroy(): 删除信号量
条件变量函数:
参看:http://blog.chinaunix.net/uid-21411227-id-1826890.html
初始化条件变量pthread_cond_init
阻塞在条件变量上pthread_cond_wait
解除在条件变量上的阻塞pthread_cond_signal
阻塞直到指定时间pthread_cond_timedwait
释放阻塞的所有线程pthread_cond_broadcast
释放条件变量pthread_cond_ destroy