java.关于线程同步的几个知识点

 我来答
ijava学习网
2018-07-02 · 国内最优秀java资源共享平台
ijava学习网
国内最优秀的java免费资源共享及学习平台,专注从实战中学习与成长。主要包括教程、经验分享、知识、资讯、工具、手册、视频及各种资源下载。
向TA提问
展开全部
  1. 扩展:   

    为何要使用同步?    

因为java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),所以将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的调用,从而保证了该变量的唯一性和准确性。

2.同步方法
有synchronized关键字修饰的方法。 

由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。

列:

public synchronized void save(){}

3.同步代码块

有synchronized关键字修饰的语句块。 
   

被该关键字修饰的语句块会自动被加上内置锁,从而实现同步
 
 
   

列:   synchronized(object){ }

4.用特殊域变量(volatile)实现线程同步

5.用重入锁实现线程同步

6.用局部变量实现线程同步

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式