`#include`函数声明:
* 1
`int pthread_create(pthread_t*restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);`参数依次为:
* 1
`void *mythread_function(void *arg)调用代码:
{
...
}`
* 1
* 2
* 3
* 4
`...注意:
#include
...
pthread_t mythread;
pthread_create(&mythread, NULL, mythread_function, NULL)`
* 1
* 2
* 3
* 4
* 5
`#include `函数:
* 1
`int sem_init(sem_t *sem, int pshared, unsigned int val);`参数依次为:
* 1
`int sem_wait(sem_t *sem);`说明:
* 1
`int sem_post(sem_t *sem);`销毁信号量
* 1
`int sem_destory(sem_t *sem);`该函数销毁信号量。
* 1
`#include `使用方法:
* 1
`pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;`方式二:
* 1
pthread_mutex_init函数,函数原型:注:第二个参数为设置互斥锁属性,NULL表示默认为普通锁。
`int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t * attr)`
* 1
`pthread_mutexattr_init(pthread_mutexattr_t *mattr);`方式二:
* 1
`pthread_mutexattr_setpshared(pthread_mutexattr_t *mattr, int pshared);`方式三:
* 1
`pthread_mutexattr_settype(pthread_mutexattr_t *attr , int type)`注:第二个参数为设置互斥锁的范围:可以指定是该进程与其他进程的同步还是同一进程内不同的线程之间的同步。可以设置为PTHREAD_PROCESS_SHARE和PTHREAD_PROCESS_PRIVATE。默认是后者,表示进程内使用锁。
* 1
`pthread_mutexattr_gettype(pthread_mutexattr_t *attr , int *type)`互斥锁的类型:
* 1
`int pthread_mutex_destroy(pthread_mutex_t *mutex);`加锁
* 1
`int pthread_mutex_lock(pthread_mutex_t *mutex);`解锁
* 1
`int pthread_mutex_unlock(pthread_mutex_t *mutex);`尝试加锁(被占据时返回EBUSY而不是挂起等待)
* 1
`int pthread_mutex_trylock(pthread_mutex_t *mutex);`[attach]58722[/attach]
* 1
欢迎光临 嵌入式开发交流网论坛 (http://www.dianzixuexi.com/bbs/) | Powered by Discuz! X3.2 |