一、同步锁

当多个线程使用同一个共享资源时 可以将处理共享资源的代码放置在一个代码块中
使用synchronized关键字来修饰 被称作同步代码块

同步锁(又称 对象监视器)
语法:

synchronized(lock)//此处的lock为任意对象
{}

例:

@Overridepublic void run() {while (true){synchronized (resources)//使用同步锁 括号里存放任意类型对象 要唯一的{if (!resources.flag)//若还没有值 那么wait()等待 先让程序输入值{try {resources.wait();//前面加上resoutces对象 代表让这个对象等待} catch (InterruptedException e) {e.printStackTrace();}}System.out.println("name="+resources.name+" sex="+resources.sex);resources.flag=false;//输出之后标签改为false 表示空了 没值了resources.notify();//唤醒另外一个线程(输入线程)  前面加上resoutces对象 代表让这个对象唤醒}}}

二、同步方法

方法前面加上synchronized关键字的方法称作同步方法
它能实现和同步代码块同样的功能
语法:

synchronized 返回值类型 方法名 ([参数1,参数2...])
{}

Java的同步锁和同步方法(synchronized)相关推荐

  1. Java技术——同步锁的各种知识总结

    1. 线程同步的方法   1.1 同步方法   就是使用synchronized关键字修饰的方法.由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法.在调用该方法前,需 ...

  2. 【java线程】锁机制:synchronized、Lock、Condition

    [Java线程]锁机制:synchronized.Lock.Condition 原创 2013年08月14日 17:15:55 标签:Java /多线程 74967 http://www.infoq. ...

  3. Java同步锁——lock与synchronized 的区别【转】

    在网上看来很多关于同步锁的博文,记录下来方便以后阅读 一.Lock和synchronized有以下几点不同: 1)Lock是一个接口,而synchronized是Java中的关键字,synchroni ...

  4. java动态同步_java并发基础-Synchronized

    基础使用 基本上Java程序员都简单的了解synchronized的使用: 无非就是用在多线程环境下的同步. 看如下简单的例子: publicclassUnsafeCounter{ privatein ...

  5. java多线程--同步锁、

    同步代码块: 语法: synchronized(同步锁) { 需要同步操作的代码 } --------------------------------------------------- 同步锁: ...

  6. Java:同步锁概念

    同步锁介绍 对于非 static 方法,同步锁就是 this. 对于 static 方法,使用当前方法所在类的字节码对象(A.class). 同步代码块: 语法 synchronized(同步锁) { ...

  7. java中同步锁的原理和实现

    接口 Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作.此实现允许更灵活的结构,可以具有差别很大的属性,可以支持多个相关的 Condition 对象. 锁是控制 ...

  8. java线程锁为什么要唯一,java线程同步-锁 - 谁说这么长又没有中心思想还与个人技术主题无关的的标题是胡闹??? - OSCHINA - 中文开源技术交流社区...

    1.synchronized 用在方法和代码块上有什么区别呢? synchronized 用在方法签名上(以test为例),当某个线程调用此方法时,会获取该实例的对象锁,方法未结束之前,其他线程只能去 ...

  9. java中多线程模拟(多生产,多消费,Lock实现同步锁,替代synchronized同步代码块)...

    import java.util.concurrent.locks.*; class DuckMsg{int size;//烤鸭的大小String id;//烤鸭的厂家和标号 DuckMsg(){}D ...

最新文章

  1. 独家 | 教你使用torchlayers 来构建PyTorch 模型(附链接)
  2. 不戴口罩还想出门?硬核口罩佩戴检测模型向你发出警告
  3. Linux下 SpringBoot jar项目后台运行、查看、停用
  4. 深度学习100例 | 第35天:脑肿瘤识别
  5. python 矩阵元素赋值_对numpy中数组元素的统一赋值实例
  6. php mysql html 转义字符_php, html, javascript, mysql 之间的特殊字符处理
  7. [转载] JAVA笔记_(Day04,Day05)函数数组
  8. MPD2011 深圳站 徐锋《手机(及互联网产品)可以做得更好》要点纪要
  9. 【python】编程语言入门经典100例--30
  10. 计算机科学与技术专业实训手册,计算机专业实习工作手册.doc
  11. FSEC大学生电动方程式赛车电气系统设计
  12. 如果刷新网页或者下拉出现白屏可能是什么原因以及url相关问题
  13. 拆掉思维里的墙--书摘+个人理解
  14. macf1-f12按键失灵_枕头2-1-0失灵
  15. 【无线通信协议笔记】蓝牙篇:BLE HID协议
  16. SQL注入详解(万字文章详解)
  17. 【C语言】交换函数(swap)
  18. 游戏开发高度图有关资料与Balder中的相关支持
  19. CSS 实现倒三角形
  20. ijk的那些事(一)编译项目

热门文章

  1. 产品三维模型在线展示
  2. linux命令之unzip
  3. 为你的程序创建一个控制台
  4. springboot整合autopoi-web文件导出Excel,使用注解配置一多
  5. Redis高可用 Sentinel
  6. 什么是链表php概念,链表 · PHP知识大纲 · 看云
  7. lua pairs与ipairs区别
  8. Nexus环境安装部署及使用
  9. 树莓派搭建微信小程序服务器传音频(局域网)
  10. 初始化Weex项目遇到的问题记录