家居日记
分享家居装修经验

可重入锁和不可重入锁的区别

可重入锁和不可重入锁的区别

可重入锁与不可重入锁的区别如下。

1.可重入锁的函数,是可以并发使用由多于一个的任务,完全不用担心数据上的错误。而不可重入锁的函数则不能超过一个任务。

2.可重入锁在任何时候都可以随时被中断,而且在此之后可以继续运行,并且能保证数据上不会出现丢失。不可重入锁则在中断之后,无法继续运行之前的数据也有可能会丢失。

3.可重入锁的所有数据都是由其中指定的函数来进行调控的。反而不可重入锁则必须要访问全局的变量才可以。

铝单板和铝塑板的区别有哪些

可重入锁和不口重入锁其实就是代码,而他们所代表的含义是不一样的,使用的方法也是不同的,可重入锁在使用的时候一般是一个类当中有AB两个方法,而A和B都是有统一的一把锁,当实施A方法的时候就可以获得锁,但在A办法的所还没有全部释放的时候也可以直接使用B方法,而在这个时候也是可以获得这个锁的。
不可重入锁也是指的是A和B两个方法,A和B可以获得统一的一把锁,而在A方法还没有释放的时候是没有办法使用B方法的,也就是说必须要等A释放之后才可以使用B方法。

这个锁跟传统的锁是不一样的,这个锁是指的是把需要的代码块,资源和数据锁上,只允许一个线程去操作,这个锁一般是在IT界能见到的。

当我们使用到Java这个软件时,会遇到可重入锁和不可重入锁,这两者有很大的差别。

最大的差别,就是他们两者的获取方式。

基本上在使用Java这个软件时,都是可重入锁,它能够有效避免被锁死的情况发生,这个锁是自动来获取的,当进入到一定的层面时,这个锁就自动就得到了。

但是不可重入锁指的,就是需要人工去操作,要不断的去测试,直到释放之后,才可以。

在java这个软件中会遇到可重入锁和不可重入锁,当然这两者之间还是有差别的,比如可重入锁就是说同一个线程它会进入到内层,并且自动获取锁,在使用java时候基本上都是这种可重入锁,因为它能有效避免被锁死情况发生。不可重入锁意思就是说不能自动获取锁,需要人工去操作,当然要一直测试,直到释放之后才可以。
还有一个区别就是可重入锁有ab两个方法,两个方法都能获得锁,而不可重入锁也有两个方法,不过要使用第2种方法,必须等第1种方法释放掉这个锁才可以。

可重入所和不可重入所之间也是有区别的,可重入锁是可以并发使用,有多余一个任务,同时也不需要担心数据上面发生错误。另外不可重入锁的函数是不可以超过一个任务的,所以这两者之间会有一个最主要的区别。
另外可重入锁,在任何情况下都是可以被打断的,数据也不会丢失,不可重入锁是不可以随意打断的,如果中断任务,那么所有的数据都会丢失。与此同时,可重入锁的所有数据都是可以由其中指定的函数进行调控的。

第1个区别,可重入锁的函数是可以并发使用,并且由于多于一个任务,所以不用担心会出现数据上的错误,而不可重入锁的函数则不能超过一个任务。
第2个区别,可重入锁在任何时候都可以被中断,而且在此以后可以继续运行,绝对不会丢失数据。而不可重入锁在中断以后,没有办法继续运行,之前的数据也有可能会丢失。
第3个区别,可重入锁的所有数据都由指定的函数来进行控制,不可重入锁必须要访问全局的变量才可以。

可重入锁和不可重入锁的区别是非常大的,了解到这两种情况只会在java这个软件中遇到,可重入锁的函数是并发使用,而不可重入锁的函数不能超过一个任务。还有就是可重入锁在任何情况下都可以中断,并且数据不会丢失。而不可重入锁是不可以随便中断任务的。只要中段任务数据就会丢失。
很多老百姓都误认为这两种是门锁的说法,其实可重入锁和不可重入锁跟门锁是没有任何关系的,大家不要误解了。

赞(0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

爱家,爱生活!