在Java5.0之前,只有synchronized(内置锁)和volatile. Java5.0后引入了显示锁ReentrantLock.ReentrantLock概况ReentrantLock是可重入的锁,它不同于内置锁, 它在每次使用都需要显示的加锁和解锁, 而且提供了更高级的特性:公平锁, 定...
分类:
编程语言 时间:
2015-02-08 12:48:17
阅读次数:
171
1.Reentrant Function:可重入函数当捕捉到信号时,不论进程的主控制流程当前执行到哪儿,都会先跳到信号处理函数中执行,从信号处理函数返回后再继续执行主控制流程。信号处理函数是一个单独的控制流程,因为它和主控制流程是异步的,二者不存在调用和被调用的关系,并且使用不同的堆栈空间。使用小结...
分类:
其他好文 时间:
2015-01-31 14:28:27
阅读次数:
747
一、可重入函数一个可重入的函数简单来说,就是:可以被中断的函数。就是说,你可以在这个函数执行的任何时候中断他的运行,在任务调度下去执行另外一段代码而不会出现什么错误。而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等等,所以他如果被中断的话,可能出现问题,所以这类函数是不能运行在多...
分类:
其他好文 时间:
2015-01-16 12:49:48
阅读次数:
124
一、概述
结构:
java.lang.Object
java.util.concurrent.locks.ReentrantLock
声明:public class ReentrantLock extends Object implements Lock, Serializable
一个可重入的互斥锁 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁相...
分类:
编程语言 时间:
2015-01-07 16:54:42
阅读次数:
222
关于代码的可重入性,设计开发人员一般只考虑到线程安全,异步信号处理函数的安全却往往被忽略。本文首先介绍如何编写安全的异步信号处理函数;然后举例说明在多线程应用中如何构建模型让异步信号在指定的线程中以同步的方式处理。应用中编写安全的信号处理函数 在开发多线程应用时,开发人员一般都会考虑线程安全,...
分类:
系统相关 时间:
2014-12-30 13:11:22
阅读次数:
222
★前言 打开久违的Live Writer,又已经好久没写博客了,真的太懒了。废话不多说了,直接进入这次博客的主题--Timer。为什么要写这个呢,因为前几天应朋友之邀,想做个“黑客”小工具,功能挺简单就是自动获取剪贴板的内容然后发送邮件,就需要用到Timer来循环获取剪贴板的内容,但是由于到了发送邮...
1关于可重入锁
ReentrantLock是基于AQS实现的可重入的同步工具类,它提供了两种同步器的实现即公平锁FairSync和非公平锁NonfairSync。它提供了一种无条件的、可轮询的、定时的以及可中断的锁获取操作,所有的加锁和解锁都是显式的。tryLock(),tryLock(long
,TimeUnit)分别提供了可轮询的、可定时的锁获取方式。 Lock()提供了无...
分类:
编程语言 时间:
2014-12-26 16:50:58
阅读次数:
283
一般定义: 程序调用自身的编程技巧称为递归(recursion)。递归做为一种算法设计技巧,是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象。递归过程总是一个过程还未执行完就执行另一个过程(但是执行另一过程前会保存未执行完时候的变量值),如此反复,一直执行到边界条件,执行完余下的...
分类:
其他好文 时间:
2014-12-21 11:26:59
阅读次数:
211
互斥锁有可重入、不可重入之分。C++标准库中用mutex表示不可重入的互斥锁,用recursive_mutex表示可重入的互斥锁。为这两个类增加根据时间来阻塞线程的能力,就又有了两个新的互斥锁:timed_mutex(不可重入的锁)、recursive_timed_mutex(可重入的锁)。C++标...
分类:
编程语言 时间:
2014-12-17 22:16:49
阅读次数:
299
网易云课堂-软件工程(C编程实践篇)识别代码工程质量:代码风格;封装接口;可重用代码;可重入函数和线程安全;代码风格的原则:简明、易读、无二义性;代码风格原则在团队交流过程中非常重要。
分类:
其他好文 时间:
2014-12-07 23:23:23
阅读次数:
181