同步方法和同步代码块的区别是什么?
区别:同步方法默认用this或者当前类class对象作为锁;同步代码块可以选择以什么来加锁,比同步方法要更细颗粒度,我们可以选择只同步会发生同步问题的部分代码而不是整个方法;同步方法使用关键字 synchronized修饰方法,而同步代码块主要是修饰需要进行同步的代码,用 synchronized(object){代码内容}进行修饰;
看这个冲刺面试
我在长沙,想学ui,有没有推荐的培训机构
同步代码块使用的锁是任意对象Object。 同步函数使用的锁是this。 使用静态修饰的同步函数使用的是该类所在的字节码文件对象,格式为类名.class。
同步方法锁的是当前对象,当一个线程使用该对象的同步方法时,会获得该对象的锁,其他线程不能访问该对象的同步方法(只有获得该对象的锁才可以访问同步方法,但可以访问该对象的非同步方法)如果并发量大的话,效率很低,因为如果要访问没有冲突的方法时本来不会和之前的操作产生冲突,但因为没有该对象的锁,所以要等待获得该对象的锁,白白地浪费时间而同步代码块可以选择要同步的代码块,粒度更小,可以避免上面出现的问题
从浏览器输入URL到展示页面的全流程是怎么样的?
小程序没有分享到朋友圈的功能,但是产品为了推广,需要曲线实现这个功能,请给出设计方案?
某公园内有个奇怪的摊主小周,他只在星期一、星期二、星期三、星期五和星期六工作,而且他只出售4种商品:玩具汽车、充气气球、橡皮泥和遥控飞机。<
基于TCP协议建立连接和结束连接的过程
看这个冲刺面试
我在长沙,想学ui,有没有推荐的培训机构
区别:
同步方法默认用this或者当前类class对象作为锁;
同步代码块可以选择以什么来加锁,比同步方法要更细颗粒度,我们可以选择只同步会发生同步问题的部分代码而不是整个方法;
同步方法使用关键字 synchronized修饰方法,而同步代码块主要是修饰需要进行同步的代码,用 synchronized(object){代码内容}进行修饰;
同步代码块使用的锁是任意对象Object。 同步函数使用的锁是this。 使用静态修饰的同步函数使用的是该类所在的字节码文件对象,格式为类名.class。
同步方法锁的是当前对象,当一个线程使用该对象的同步方法时,会获得该对象的锁,其他线程不能访问该对象的同步方法(只有获得该对象的锁才可以访问同步方法,但可以访问该对象的非同步方法)
如果并发量大的话,效率很低,因为如果要访问没有冲突的方法时本来不会和之前的操作产生冲突,但因为没有该对象的锁,所以要等待获得该对象的锁,白白地浪费时间
而同步代码块可以选择要同步的代码块,粒度更小,可以避免上面出现的问题