---恢复内容开始---public class ReentrantLockextends Objectimplements Lock, Serializable 一个可重入的互斥锁... 使用公平锁的被多线程访问的程序可能比那些使用默认设置的程序显出更低的吞吐性能(也就是速度慢,通常慢很多),.....
分类:
编程语言 时间:
2015-06-03 19:30:46
阅读次数:
111
1. 什么是可重入锁(ReentrantLock)? 答: java.util.concurrent.lock 中的 Lock 框架是锁定的一个抽象,它允许把锁定的实现作为 Java 类,而不是作为语言的特性来实现。这就为 Lock 的多种实现留下了空间,各种实现可能有不同的调度算法、性能特性或.....
分类:
编程语言 时间:
2015-06-01 18:34:05
阅读次数:
188
原文链接 作者:Jakob
Jenkov 译者:刘晓日 校对:丁一
重入锁死与java中的死锁非常相似。锁和读写锁两篇文章中都有涉及到重入锁死的问题。
当一个线程重新获取锁,读写锁或其他不可重入的同步器时,就可能发生重入锁死。可重入的意思是线程可以重复获得它已经持有的锁。Java的synchronized块是可重入的。因此下面的代码是没问题的:
(译者注:这里提到的锁都是指的...
分类:
编程语言 时间:
2015-05-14 18:51:39
阅读次数:
170
原文链接作者:Jakob Jenkov译者:刘晓日校对:丁一重入锁死与java中的死锁非常相似。锁和读写锁两篇文章中都有涉及到重入锁死的问题。当一个线程重新获取锁,读写锁或其他不可重入的同步器时,就可能发生重入锁死。可重入的意思是线程可以重复获得它已经持有的锁。Java的synchronized块是...
分类:
编程语言 时间:
2015-05-14 18:20:02
阅读次数:
237
一、什么是可重入函数?
答:可重入函数就是多个线程访问同一个函数时,彼此之间互不影响,均能得到期望的结果
二、如何使函数可重入?
答:保证函数所有的输入都来自于函数的形参,所有的输出都为从函数返回值或输出参数得到,
函数内部不得使用全局变量或者静态局部变量
三、不可重入函数举例
int g_flag = 0;
int fun(int x)
{...
分类:
其他好文 时间:
2015-05-14 01:02:51
阅读次数:
141
信号就是软中断。信号提供了异步处理事件的一种方式。例如,用户在终端按下结束进程键,使一个进程提前终止。1 信号的概念每一个信号都有一个名字,它们的名字都以SIG打头。例如,每当进程调用了abort函数时,都会产生一个SIGABRT信号。每一个信号对应一个正整数,定义在头文件中。没有信号对应整数0,k...
分类:
其他好文 时间:
2015-05-08 20:07:47
阅读次数:
196
主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能...
分类:
其他好文 时间:
2015-05-06 15:04:03
阅读次数:
108
全文共分四部分: POSIX多线程—概述 POSIX多线程—异步编程举例 POSIX多线程—线程基本概念 POSIX多线程—互斥量概述 POSIX多线程—概述 Content1. 基础概念2. 线程安全3. 可重入4. 并发系统基本功能1. 基础概念线程进程里执行代码的部分;包含一系列机器指令所必....
分类:
编程语言 时间:
2015-05-06 14:51:11
阅读次数:
272
一、引言今天看网易公开课,孟宁老师的软件工程(C编码实践篇),讲到可重入和线程安全,结合他的讲解和我的理解,写下这篇博文,记录一下。二、可重入与线程安全的关系可重入不一定是线程安全的线程安全的一定是可重入的不可重入函数一定不是线程安全的孟老师最后的总结很不错:线程安全是扩大了范围的可重入,即可重入函...
分类:
编程语言 时间:
2015-04-26 13:39:13
阅读次数:
132
主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能...
分类:
其他好文 时间:
2015-04-23 23:15:32
阅读次数:
191