刘龙威 + 原创作品转载请注明出处 + 《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-1000002006 心得收获: 软件工程学是一门理论性较强的课程,一是它用分阶段的生命周期计划进行严格的管理,一个软件产品的生命周期可划分为若 ...
分类:
其他好文 时间:
2016-11-20 15:51:11
阅读次数:
178
看了好多文章,觉得这俩概念很容易混淆。在这里先总结一下自己的理解。 维基百科对可重入的定义是: 若一个程序或子程序可以“安全的被并行执行(Parallel computing)”,则称其为可重入(reentrant或re-entrant)的。 可重入的概念是在单线程操作系统的时代提出的。可重入会影响 ...
分类:
编程语言 时间:
2016-10-31 00:29:48
阅读次数:
204
这三个概念一直纠缠着我,我也时不时的会拿出来辨析下,直到昨天才发现自己可以把它们理顺了。所以学习就是这样一个反复的过程,最终达到顿悟的效果。本文主要参考APUE第三版英文版第10.6和12.5节,以及...
分类:
编程语言 时间:
2016-10-21 20:17:29
阅读次数:
411
协程,又叫微线程,协程是一种用户态的轻量级线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种 ...
分类:
编程语言 时间:
2016-10-20 12:27:56
阅读次数:
255
最近经常听到这个名词,以前也听到过,不过接触更多的是“线程安全问题”,而且本人也一直理解的是两个名字的含义是一样的。今天仔细总结一下这个名词相关的概念。 引用博文:可重入函数和不可重入函数 (http://www.cppblog.com/franksunny/archive/2007/08/03/2 ...
分类:
其他好文 时间:
2016-10-18 18:35:43
阅读次数:
216
摘要 从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些。 场景1:如果发现该操作已经在执行中则不再执行(有状态执行) if (lock.tryLock()) { //如果已经被lock,则立即返回false不会等待,达到忽略操作的效果 a、用在定时任务时,如果任务执 ...
分类:
其他好文 时间:
2016-10-08 13:59:23
阅读次数:
111
重入一般可以理解为一个函数在同时多次调用,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象。 一般浮点运算都是由专门的硬件来完成,举个例子假设有个硬件寄存器名字叫做FLOAT,用来计算和存放浮点数的中间运算结果 假设有这么个函数 void fun() { //...这个 ...
分类:
其他好文 时间:
2016-10-05 21:53:55
阅读次数:
150
如何实现可重入?首先锁信息(指redis中lockKey关联的value值)必须得设计的能负载更多信息,之前non-reentrant时value直接就是一个超时时间,但是要实现可重入单超时时间是不够的,必须要标识锁是被谁持有的,也就是说要标识分布式环境中的线程,还要记录锁被入了多少次。如何在..
分类:
编程语言 时间:
2016-10-04 08:10:47
阅读次数:
547
本文转载自: http://www.blogfshare.com/kernel-synchronization.html 1.在支持多线程的操作系统下,有些函数会出现不可重入的现象。所谓“可重入”是指函数的执行结果不和执行顺序有关。反之如果执行结果和执行顺序有关,则称这个函数是“不可重入”的。 2. ...
分类:
其他好文 时间:
2016-09-30 12:14:14
阅读次数:
328
JDK内部提供了大量的API和框架,这里主要介绍三部分 多线程同步控制方法 线程池,提高线程调度的性能 JDK的并发容器 重入锁:java.util.concurrent.locks.ReenterLock 在代码中,类ReenterLock实现了Runnable,其中有static的变量i,在ru... ...
分类:
编程语言 时间:
2016-09-28 01:19:55
阅读次数:
315