递归信号量的属性:同一个任务中,可以被获取多次,且需要释放相同次数才能被其他任务获取。 1.递归信号量的创建、获取、释放: xxMux = xSemaphoreCreateRecursiveMutex(); xSemaphoreTakeRecursive(xxMux,osWaitForever); ...
分类:
其他好文 时间:
2019-10-31 13:20:09
阅读次数:
123
(手机横屏看源码更方便) 引子 大家知道,我最近在招人,今天遇到个同学,他的源码看过一些,然后我就开始了AQS连环问。 我:说说AQS的大致流程? 他:AQS包含一个状态变量,一个同步队列……balabala……互斥锁balabala,共享锁balabala…… 我:AQS中除了同步队列,还有什么队 ...
分类:
其他好文 时间:
2019-10-31 00:18:07
阅读次数:
95
1.可变性:String不可变(适用于做HashMap的键),StringBuffer和StringBuilder可变 2.性能角度:,String在new的时候,会在常量池中开辟空间,比较耗费内存,而StringBuffer,StringBuiilder字符串缓冲区(里面存储的全部都是字符串),它 ...
分类:
其他好文 时间:
2019-10-30 21:07:57
阅读次数:
108
线程一、什么是线程?在传统的操作系统当中,每一个进程有一个地址空间,默认就有一个控制线程进程只是用来把资源集中到一起(进程只是一个资源单位,或者说是资源集合),而线程才是cpu上的执行单位多线程:是指在一个进程当中,开启多个线程,多个线程共享该进程的地址空间。二、线程与进程的区别1、同一个进程内的多 ...
分类:
编程语言 时间:
2019-10-30 18:51:13
阅读次数:
95
/** * ReentrantLock是独占锁 * Lock锁的使用,把锁和要用锁同步的代码放在一起,这里就是放在Printer类中了 * 获取到锁后,最后要在finally代码块中手动释放锁 */ public class LockTest { public static void main(St... ...
分类:
其他好文 时间:
2019-10-30 16:32:07
阅读次数:
83
总结一下大文件分片上传和断点续传的问题。因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况。http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较大时,http协议自动会将文件切片(分块),但这不是我们现在说的重点,我们要做的事是保证在网络中断后1G的文件已上传的那部分在下次 ...
分类:
Web程序 时间:
2019-10-30 12:03:32
阅读次数:
123
一个信号量本质是一个整数值,它和一堆函数联合使用,这一对函数通常称为P和V;希望进入临界区的进程将在相关信号量上调用P;如果信号量的值大于零,则该值会减少1,进程可以继续执行;相反,如果信号量的值为0或者更小,则进程必须等待知道其他人释放该信号量;对信号量的解锁通过调用V完成;该函数增加信号量的值, ...
分类:
系统相关 时间:
2019-10-29 17:09:33
阅读次数:
96
单片机个人觉得先掌握其中一种,其它的都可以触类旁通,快速上手了。如果你这些条件都没有,我建议你学习51 单片机。 为什么要学习51单片机: 虽然现在单片机种类和型号非常多,每个型号都有一定的市场份额,但是哪个型号也没有早期 51单片机那般风光和火爆,虽然现在地位不是那么高了,但是因为 51 单片机积 ...
分类:
其他好文 时间:
2019-10-28 14:59:52
阅读次数:
107
[TOC] 一、概述 ? 程序在运行过程中是不断申请内存,释放内存,如果程序只是申请没有释放就会引起内存泄漏内存不足等问题。在C语言、C++中,程序员需要手动的释放内存,如果程序员粗心忘记回收,就会导致程序bug,在Java中,JVM提供自动回收内存机制GC(内存回收器),减少程序员的工作量和减低由 ...
分类:
其他好文 时间:
2019-10-28 14:26:50
阅读次数:
147
该对象上下文实例已被释放,不能用于需要连接的操作。 shared context per request模式,缩短Entity实例的存在时间和降低Entity实例的共享性,并考虑性能,因为Entity需要手动Dispose。 不能使用单例模式,静态方法就可以。 ...