public class SynMethon implements Runnable{private  double money=1000000;public  void run(){dbMoney();}//同步方法private synchronized void dbMoney(){Thread t=Thread.currentThread();for(int i=1;i<=10;i++){if(t.getName().equals( "会计" )){money+=i*10;System.out.println( t.getName()+"正在整理账户" );}if(t.getName().equals( "出纳" )){money-=i*5;System.out.println( t.getName()+"正在支取账户" );}System.out.println( "当前金额为"+money );try {Thread.sleep( 1000 );}catch (InterruptedException e){e.printStackTrace();}}}
}

测试类

public class test110 {public static void main(String[] args){//测试同步方法SynMethon synMethon=new SynMethon();Thread kuaiji=new Thread( synMethon,"会计" );kuaiji.setPriority( Thread.MAX_PRIORITY );kuaiji.start();Thread chuna=new Thread( synMethon,"出纳" );chuna.start();}
}

运行结果

java学习(163):同步方法锁相关推荐

  1. Java:java学习笔记之锁机制的简单理解和使用

    锁机制的简单理解和使用 锁机制 1.背景 2.定义 3.锁的种类 4.乐观锁 VS 悲观锁 4.1.悲观锁 4.2.乐观锁 4.3.举例说明 4.4.CAS算法 4.4.1.CAS使用 4.4.2.C ...

  2. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  3. java学习系列2(并发锁问题-乐观锁与悲观锁以及乐观锁的一种实现方式-CAS)

    Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS 首先介绍一些乐观锁与悲观锁: 悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别 ...

  4. Java入门1.2.3—一个老鸟的Java学习心得

    Java入门1.2.3-一个老鸟的Java学习心得 基本信息 作者: 臧萌    出版社:清华大学出版社 ISBN:9787302217831 上架时间:2010-3-30 出版日期:2010 年3月 ...

  5. Java学习笔记(原创)

    Java学习笔记(原创) 2011-12-01 16:37:00|  分类: Java|举报|字号 订阅 下载LOFTER客户端 基本知识 一. Java基础 1. java语言的特点: ①简单:没有 ...

  6. java学习笔记14--多线程编程基础1

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...

  7. Java学习笔记22:并发(2)

    Java学习笔记22:并发(2) 图源:PHP中文网 终止任务 终止线程有一种非常简单的方式:设置一个多线程共享的标记位,子线程用轮询的方式检查这个标记位,如果该标记位显示取消状态,就让子线程退出执行 ...

  8. java 7 锁优化_自Java 6/Java 7开始,Java虚拟机对内部锁的实现进行了一些优化。这些优化主要包括锁消除(Lock Elision)、锁粗化(Lock Coarse...

    自Java 6/Java 7开始,Java虚拟机对内部锁的实现进行了一些优化.这些优化主要包括锁消除(Lock Elision).锁粗化(Lock Coarsening).偏向锁(Biased Loc ...

  9. 十年架构师留下最完整的Java学习路线

    原文地址:https://club.dingding.xin/topic/5081/十年架构师留下最完整的java学习路线?code=cb850abbce523c7f886f583d6dc00f5e ...

  10. 十年架构师留下最完整的Java学习路线,学完年薪40W

    文章有点长,请大家耐心看完,话不多说直接上干货! 永不过时的编程语言--Java 编程开发. Java编程语言占比: 据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以900万的程序员数 ...

最新文章

  1. 跟我学Springboot开发后端管理系统2:Mybatis-Plus实战
  2. 用 .NET Memory Profiler 跟踪.net 应用内存使用情况--基本应用篇(转载)
  3. Varnish页面缓存服务
  4. 手机中geetest是什么文件_安卓手机系统中各类英文文件夹的含义详解,不知道的尽快熟知!...
  5. 关于JS数组API的总结
  6. MySQL DISTINCT:去重(过滤重复数据)
  7. Python安装Jupyter Notebook配置使用教程
  8. spring4.0:@Configuration的使用
  9. ffmpeg 推流同时录像命令_ffmpeg推流命令
  10. 使用android开发移动学习平台_移动学习平台有几种开发方法,你造吗?
  11. 实现财务自由 之 不可不知的常用财务网站或应用软件
  12. 多个485串联_让RS-485接口远离EMI风险!这有三个实用方案
  13. oracle去空格和换行,ORACLE 中去回车、空格、TAB的函数
  14. ubuntu18.04通过deb文件安装软件
  15. 【实验】实验课总结1 绘制简单电路图
  16. 创业公司产品经理生存指南
  17. taobao.trades.sold.get-查询卖家已卖出的交易数据(根据创建时间),淘宝店铺卖出订单查询API接口,淘宝R2接口,淘宝oAuth2.0交易接口代码分享
  18. 经济危机与金融危机的学术解释与通俗到庸俗的解释,包你明白
  19. Angular 服务端渲染(SSR) 学习笔记
  20. OpenWrt 设置IP地址

热门文章

  1. 在字符串中使用引号()等字符 需要用转义字符\ 例如
  2. java.util.set cannot be assigned from null_Java中有关Null的9件事
  3. 什么叫有效物理网卡_如何区分虚拟网卡和物理网卡?-阿里云开发者社区
  4. 简单的java方法_Java简单实用方法一
  5. mallco动态分配_malloc动态分配的内存的生存周期是多少?
  6. linux c字符连接,C 语言实例
  7. 王道操作系统考研笔记——1.1.1 操作系统的概念、功能和目标
  8. 深入了解crc32算法
  9. VB2005.Net 环境下使用Jmail组件发送邮件
  10. Windows与Linux下tftp服务的使用