线程相关函数
<h1 id="pthread_create函数">pthread_create函数</h1><p>此函数可以创建一个线程</p>
<pre><code>int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine)(void *), void *arg);
//thread:该参数指向线程标识符的指针,创建成功返回创建线程的ID
//attr:设置线程的属性,填NULL表示默认属性
//start_routine:函数指针,线程创建后要调用的函数
//arg:传递给线程函数的参数
//ret:成功返回0,失败返回一个负数
</code></pre>
<h1 id="pthread_exit函数">pthread_exit函数</h1>
<p>此函数可以终止一个线程</p>
<pre><code>void pthread_exit(void *retval)
//retval:可以记录线程的终止状态,可用于调用pthread_join函数
</code></pre>
<h1 id="pthread_join函数">pthread_join函数</h1>
<p>此函数可以获得终止线程的状态,并回收其资源,防止僵尸线程的存在。</p>
<pre><code>int pthread_join(pthread_t thread,void **retval)
//thread:要释放资源的线程ID
//retval:如果不为NULL,则将目标线程的退出状态复制到retval指向的位置
</code></pre>
<h1 id="pthread_attr_init函数">pthread_attr_init函数</h1>
<p>此函数可以对线程属性进行初始化</p>
<pre><code>int pthread_attr_init(pthread_attr_t *attr)
//attr:线程的属性对象
//ret:成功返回0,失败返回错误码
</code></pre>
<h1 id="pthread_attr_destory函数">pthread_attr_destory函数</h1>
<p>此函数可以销毁一个线程属性对象</p>
<pre><code>int pthread_attr_destory(pthread_attr_t *attr)
//attr:线程的属性对象
//ret:成功返回0,失败返回错误码
</code></pre>
<h1 id="pthread_attr_setdetachstate函数">pthread_attr_setdetachstate函数</h1>
<p>此函数可以设置线程的属性是可分离的,当线程结束后不需要pthread_join函数回收资源,系统会自动释放其资源</p>
<pre><code>int pthread_attr_setdetachstate(pthread_attr_t *attr,int datachstate)
//attr:线程的属性对象
//detachstate:设置分离状态属性
//PTHREAD_CREATE_DETACHED:分离状态
//PTHREAD_CREATE_JOINABLE:可连接状态
//notice:默认是可连接状态
</code></pre>
<h1 id="pthread_detach函数">pthread_detach函数</h1>
<p>此函数可以在线程的任务函数中强制把自身的属性设置为分离属性</p>
<pre><code>int pthread_detach(pthread_t thread)
//thread:线程ID
//ret:成功返回0,失败返回错误码
</code></pre>
<h1 id="pthread_self函数">pthread_self函数</h1>
<p>此函数可以获取线程自身的id</p>
<pre><code>pthread_t pthread_self(void)
//ret:调用成功返回线程的ID
</code></pre>
<h1 id="pthread_mutex_init函数">pthread_mutex_init函数</h1>
<p>该函数就可以对互斥量进行初始化</p>
<pre><code>pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;//互斥量
int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr);
//mutex:直接使用上边的宏即可
//attr:设置互斥量的属性,填NULL表示使用默认属性
//ret:成功返回0,失败返回错误码
</code></pre>
<h1 id="pthread_mutex_destory函数">pthread_mutex_destory函数</h1>
<p>此函数可以销毁一个互斥量</p>
<pre><code>pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;//该语句可以对互斥量进行初始化
int pthread_mutex_destory(pthread_mutex_t *mutex);
//mutex:直接使用上边的宏即可
//ret:成功返回0,失败返回错误码
</code></pre>
<h1 id="pthread_mutex_lock函数">pthread_mutex_lock函数</h1>
<p>对互斥量进行上锁</p>
<pre><code>int pthread_mutex_lock(pthread_mutex_t *mutex)
</code></pre>
<h1 id="pthread_mutex_trylock函数">pthread_mutex_trylock函数</h1>
<p>尝试对互斥量进行上锁</p>
<pre><code>int pthread_mutex_trylock(pthread_mutex_t *mutex)
</code></pre>
<h1 id="pthread_mutex_unlock函数">pthread_mutex_unlock函数</h1>
<p>对互斥量进行解锁</p>
<pre><code>int pthread_mutex_unlock(pthread_mutex_t *mutex)
</code></pre><br><br>
来源:https://www.cnblogs.com/lradian/p/18867613
頁:
[1]