linux编程----线程编程

概述:

1:程是调度的最小单位;进程是资源分配的最小单位。

2:进程中的线程是共享全局变量以及内存的。

3:共享:指令,除去私有数据,signal处理方式及其例程,运行环境

来源:http://www.cnblogs.com/forstudy/archive/2012/04/05/2433853.html

函数介绍:

image

说明:

用于获取本线程的ID号----ID就是一个长无符号整型

------------------------------分割线--------------------------------

image

说明:

用于判断线程ID是否相等

------------------------------分割线--------------------------------

image

说明:

创建线程,其中的线程函数就是线程的入口处。创建后线程就会启动了。

------------------------------分割线--------------------------------

image

说明:

线程退出函数

------------------------------分割线--------------------------------

image

说明:

等待线程th执行完。。

------------------------------分割线--------------------------------

image

说明:

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

原文地址:https://www.cnblogs.com/miner007/p/3978557.html