您现在的位置是:首页» 生活» 线程同步机制优缺点,线程同步和阻塞的关系

线程同步机制优缺点,线程同步和阻塞的关系

2023-09-17 17:22:54
今天小编为大家分享生活中的小常识、日常问题解答等相关内容,希望能够帮助大家。1、也就是用synchronized关键字修饰的方法(所有访问状态变量的方法都必须同步),此时充当锁的对象就是调用synchronized方法的对象。在调用这个方法之前,需要获取内置锁,否则会处于阻塞状态。2、synchronized关键字还可以修改静态方法,在这种情况下,如果调用静态方法,整个类都将被锁定。3、同步代码块4、也就是用synchronized关键字修饰的语句块。锁的粒度更细,充当锁的对象不一定是这个,也可以是其他对

今天小编为大家分享生活中的小常识、日常问题解答等相关内容,希望能够帮助大家。

1、也就是用synchronized关键字修饰的方法(所有访问状态变量的方法都必须同步),此时充当锁的对象就是调用synchronized方法的对象。在调用这个方法之前,需要获取内置锁,否则会处于阻塞状态。

2、synchronized关键字还可以修改静态方法,在这种情况下,如果调用静态方法,整个类都将被锁定。

3、同步代码块

4、也就是用synchronized关键字修饰的语句块。锁的粒度更细,充当锁的对象不一定是这个,也可以是其他对象,所以使用起来更灵活。

5、同步是一项开销很大的操作,因此应该尽量减少同步的内容。通常不需要同步整个方法,只需要使用同步的代码块来同步关键代码。

6、一开始我们谈到了内置锁的引入,也就是互斥。线程A获得互斥体后,线程B阻塞,直到线程A释放互斥体,线程B才能获得相同的互斥体。但是上面代码中主线程不同步状态对象,

7、因此,当线程锁定状态对象时,不需要阻塞,可以直接操作状态对象。因此,所有使用同步对象的地方都必须同步。

8、修改方法是打开注释的代码。

9、如果锁对象是静态变量或者静态方法是用synchronized关键字修饰的,则锁对象是类对象。

10、使用特殊域变量(volatile)来实现线程同步。

11、该1)。volatile关键字提供了访问域变量的无锁机制;

12、(2)用volatile来修饰一个域,相当于告诉虚拟机这个域可能会被其他线程更新;

13、(3).因此,每次使用该字段时都需要重新计算,而不是使用寄存器中的值;

14、(4).volatile不提供任何原子操作,也不能用来修改final类型的变量;

15、使用重入锁实现线程同步

16、在Java1.5中,添加了java.util.concurrent包来支持同步。

17、ReentrantLock类是可重入、互斥、实现了Lock接口的锁,它拥有synchronized相同的并发性和内存语义,此外还多了锁投票,定时锁等候和中断锁等候。

18、 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定;

19、如果使用synchronized,如果A不释放,B将一直等下去,不能被中断;

20、 如果使用ReentrantLock,如果A不释放,可以使B在等待了足够长的时间以后,中断等待,而干别的事情。

本文到此结束,希望对大家有所帮助。

Www.yiLeen.com.CN艺莲園提供生活百科,美食,购物,旅游,房产,交通,家居,数码,科技,财经,教育,健康,娱乐,历史,汽车,生活消费门户网站

本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

联系邮箱:773537036@qq.com

标签: 线程 机制