Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux 下pthread的实现是通过系统调用clone()来实现的。clone()是 Linux所特有的系统 ...
分类:
编程语言 时间:
2020-04-02 18:09:51
阅读次数:
84
1. 静态库和动态库定义 <1>.链接静态库的时候,会将库中函数实现的代码直接搬移到可执行文件中,生成的可执行文件体积大,运行的时候不需要库的支持。 <2>.链接动态库的时候,只是记录可执行文件所依赖的库名,生成的可执行文件体积小, 运行的时候需要库的支持 (1)查看可执行文件依赖的动态库 read ...
分类:
其他好文 时间:
2020-03-28 17:41:25
阅读次数:
78
// // Created by gxf on 2020/3/24. // #include <stdio.h> #include <pthread.h> #include <stdlib.h> #include <unistd.h> pthread_mutex_t lock = PTHREAD_M ...
分类:
其他好文 时间:
2020-03-24 09:13:53
阅读次数:
68
Linux线程条件变量成为取消点的陷阱 使用 pthread_cancel() 时,线程往往不会直接退出,而需要运行到取消点。 pthread_cond_wait() 作为线程常见的一种阻塞,它也是一个取消点。所以,处于条件变量阻塞的线程在接收到取消信号就会直接退出。 然而,由于条件变量需要搭配互斥 ...
分类:
编程语言 时间:
2020-03-23 00:30:29
阅读次数:
92
1.多态 多态的条件: (1):继承 (2):父类中有虚函数 (3):在子类中重新实现父类的虚函数(覆盖虚表) (4):把子类对象/指针赋值给父类的引用/指针 (5):通过父类的引用/指针来调用虚函数(只能调用父类中存在的函数) 用C++类以及多态来封装pthread进程 class CppThre ...
分类:
其他好文 时间:
2020-03-20 00:26:32
阅读次数:
69
一、数据刷新 在主框架中可以看到数据刷新线程:pthread_refrash.c 略去出错处理,如下: 1 #include "data_global.h" 2 #include "sem.h" 3 4 #define N 1024 //for share memory 5 6 //外部声明键值与i ...
分类:
其他好文 时间:
2020-03-19 22:00:55
阅读次数:
84
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <pthread.h> #include <time.h> #include <unistd.h> typedef struct score_s{ char nam ...
分类:
编程语言 时间:
2020-03-17 08:13:17
阅读次数:
68
time.h 格式化日期 time()获取当前日期的秒,localtime()获取当前时间字段, strftime格式化日期到字符串 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <pthread.h> #in ...
分类:
编程语言 时间:
2020-03-17 08:05:15
阅读次数:
51
一. 什么是互斥锁 计算机中,当多个进程或者线程共享一个临界区(例如:共享内存空间或者全局变量),如果仅对该临界区读取,不进行内容修改,即使同时多次读取都是没有问题的。 但是,当我们需要修改临界区内的内容时,我们就必须面对一个情况:同时有多个操作对临界区的内容进行修改,在操作完后,保留的是那一次操作 ...
分类:
其他好文 时间:
2020-03-11 01:33:45
阅读次数:
56
一. 什么是读写锁 很多时候,对共享变量的访问有以下特点:大多数情况下线程只是读取共享变量的值,并不修改,只有极少数情况下, 线程才会真正地修改共享变量的值。对于这种情况,读请求之间之间是无需同步的,他们之间的并发访问是安全的。但是 必须互斥写请求和其他读请求。 这种情况在实际中是存在的,比如配置项 ...
分类:
其他好文 时间:
2020-03-09 13:56:22
阅读次数:
56