递归信号量的属性:同一个任务中,可以被获取多次,且需要释放相同次数才能被其他任务获取。 1.递归信号量的创建、获取、释放: xxMux = xSemaphoreCreateRecursiveMutex(); xSemaphoreTakeRecursive(xxMux,osWaitForever); ...
分类:
其他好文 时间:
2019-10-31 13:20:09
阅读次数:
123
线程一、什么是线程?在传统的操作系统当中,每一个进程有一个地址空间,默认就有一个控制线程进程只是用来把资源集中到一起(进程只是一个资源单位,或者说是资源集合),而线程才是cpu上的执行单位多线程:是指在一个进程当中,开启多个线程,多个线程共享该进程的地址空间。二、线程与进程的区别1、同一个进程内的多 ...
分类:
编程语言 时间:
2019-10-30 18:51:13
阅读次数:
95
一 线程间的同步与互斥:信号量、互斥量、实践集 线程互斥是指对于临界区资源访问的排它性,如多个线程对共享内存资源的访问,生产消费型对产品的操作。临界区操作操作方法有: rt_hw_interrupt_disable() / rt_enter_critical()进入临界区, rt_hw_interr ...
分类:
编程语言 时间:
2019-10-30 18:47:17
阅读次数:
182
自旋锁可以再不能休眠的代码中使用,比如中断处理例程;在正确使用的情况下,自旋锁通常可以提供比信号量更高的性能; 一个自旋锁是一个互斥设备,它只能由两个值,锁定和解锁;通常实现为某个整数值中的单个位;希望获得特定锁的代码测试相关位,如果锁可用,则锁定位被设置,而嗲吗继续进入临界区;相反,如果锁被其他人 ...
分类:
系统相关 时间:
2019-10-29 20:05:13
阅读次数:
128
一个信号量本质是一个整数值,它和一堆函数联合使用,这一对函数通常称为P和V;希望进入临界区的进程将在相关信号量上调用P;如果信号量的值大于零,则该值会减少1,进程可以继续执行;相反,如果信号量的值为0或者更小,则进程必须等待知道其他人释放该信号量;对信号量的解锁通过调用V完成;该函数增加信号量的值, ...
分类:
系统相关 时间:
2019-10-29 17:09:33
阅读次数:
96
长连接断开的原因 连接超时,浏览器自动断开连接 进程被杀死 不可抗拒因素 根据不同情况,高效保活的方式 连接超时:心跳机制 进程保活 断线重连 重点心跳机制 产物 心跳包 心跳应答 轮询与心跳区别 轮询一次相当于:建立一次TCP连接+断开连接 心跳:在已有的连接上进行保活 心跳设计要点 心跳包的规格 ...
分类:
其他好文 时间:
2019-10-27 00:55:33
阅读次数:
125
在linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法。在linux下有多种进程间通信的方法:半双工管道、命名管道、消息队列、信号、信号量、共享内存、内存映射文件,套接字等等。使用这些机制可以为linux下的网络服 ...
分类:
系统相关 时间:
2019-10-26 21:19:11
阅读次数:
109
管程和信号量这两个同步原语在 Java 语言中的实现,理论上用这两个同步原语中任何一个都可以解决所有的并发问题。那 Java SDK 并发包里为什么还有很多其他的工具类呢?原因很简单:分场景优化性能,提升易用性。 其中有个非常普遍的并发场景:读多写少场景。实际工作中,为了优化性能,我们经常会使用缓存 ...
分类:
其他好文 时间:
2019-10-25 13:42:22
阅读次数:
119
为了更好地进行上位机开发,特意开发了一款上位机配置管理一体化软件,该软件集成配置、通信及上层接口为一体,统一进行多线程通信及数据解析,可以快速进行上位机开发,已实际运用在多个项目,并稳定运行超过1年时间。 功能如下: 【1】上位机配置 【2】上位机通信 【3】上层接口 软件截图: ...
分类:
其他好文 时间:
2019-10-22 18:39:36
阅读次数:
262