
Linux系统编程之线程
文章平均质量分 54
chocolatemo
这个作者很懒,什么都没留下…
展开
-
7.线程条件控制实现线程的同步
一、条件变量相关的API 条件变量是线程另一可用的同步机制。条件变量给多个线程提供了一个会合的场所。条件变量与互斥量一起使用时,允许线程以无竞争的方式等待特定的条件发生。 条件本身是由互斥量保护的。线程在改变条件状态前必须首先锁住互斥量,其他线程在获得互斥量之前不会察觉到这种改变,因为必须锁定互斥量以后才能计算条件。 条件变量使用之前必须首先初始化,pthread_cond_t数据类型代表的条件变量可以用两种方式进行初始化,可以把常量PTHREAD_COND_INITIALIZER赋给..原创 2021-08-22 01:28:17 · 109 阅读 · 0 评论 -
6.互斥锁产生死锁
产生死锁的两种方式1.假如程序当中有一个执行流因为结束了当前线程而没有进行解锁操作,由于他没有进行解锁操作,就会使其他想要获取互斥锁的线程进行阻塞,从而产生死锁2.当程序中有多个互斥锁存在的时候,两个或者多个已经上锁的线程之间互相申请对方的互斥锁资源,就会使双方都陷入永久等待的状态,从而产生死锁死锁的示例代码(以上第二种情况):demo7.cinclude<stdio.h>#include<pthread.h>int g_data = 0;pth.原创 2021-08-22 00:03:17 · 1051 阅读 · 0 评论 -
5.互斥锁限制共享资源的访问
示例代码:demo6.c#include<stdio.h>#include<pthread.h>int g_data = 0;pthread_mutex_t mutex;//创建全局锁void *func1(void* arg){ printf("t1:%ld pthread is create\n",(unsigned long)pthread_self());//获取id printf("t1: param is %d\n",*((原创 2021-08-21 19:27:06 · 132 阅读 · 0 评论 -
3.线程共享内存空间
1.原创 2021-08-21 17:07:01 · 273 阅读 · 0 评论 -
2.线程创建、等待及退出
一、Linux上线程开发API概要多线程开发在 Linux 平台上已经有成熟的 pthread 库支持。多线程开发的最基本概念主要包含三点:线程,互斥锁,条件。其中,线程操作又分线程的创建,退出,等待 3 种。互斥锁则包括 4 种操作,分别是创建,销毁,加锁和解锁。条件操作有 5 种操作:创建,销毁,触发,广播和等待。1. 线程创建#include <pthread.h>int pthread_create(pthread_t *restrict tidp, .原创 2021-08-21 16:40:15 · 488 阅读 · 0 评论 -
1.线程概述
一、进程与线程1.线程的概念:linux中,线程又叫做轻量级进程(light-weight process LWP),也有PCB进程控制块),在Linux环境下本质仍是进程,创建线程使用的底层函数和进程底层一样,都是clone,但没有独立的地址空间;而进程有独立地址空间,拥有PCB(进程控制块)。Linux下: 线程:最小的执行单位,调度的基本单位。进程:最小分配资源单位,可看成是只有一个线程的进程。2.进程与线程区别:进程:独立地址空间,拥有PCB线程:没有独立的地址空间(原创 2021-08-20 21:57:29 · 130 阅读 · 0 评论