本文实例讲述了java同步代码块和同步方法。分享给大家供大家参考,具体如下:

一 点睛

所谓原子性WOmoad:一段代码要么执行,要么不执行,不存在执行一部分被中断的情况。言外之意是这段代码就像原子一样,不可拆分。

同步的含义:多线程在代码执行的关键点上,互通消息,相互协作,共同把任务正确的完成。

同步代码块语法:

synchronized(对象)

{

需要同步的代码块;

}

同步方法语法:

访问控制符 synchronized 返回值类型方法名称(参数)

{

需要同步的代码;

}

二 同步代码块完成卖票功能

1 代码

public class threadSynchronizwww.cppcns.comation

{

public static void main( String[] args )

{

TestThread t = new TestThread();

// 启动了四个线程,实现资源共享

new Thread( t ).start();

new Thread( t ).start();

new Thread( t ).start();

new Thread( t ).start();

}

}

class TestThread implements Runnable

{

private int tickets = 5;

@Override

public void run()

{

while( true )

{

synchronized( this )

{

if( tickets <= 0 )

break;

try

{

Thread.sleep( 100 );

}

catch( Exception e )

{

e.printStackTrace();

}

System.out.println( Thread.currentThread().getName() + "出售票" + tickets );

tickets -= 1;

}

}

}

}

2 运行

Thread-0出售票5

Thread-3出售票4

Thread-3出售票3

Thread-2出售票2

Thread-2出售票1

三 同步方法完成买票功能

1 代码

public class threadSynchroniz

2 运行

Thread-0出售票5

Thread-0出售票4

Thread-3出售票3

Thread-2出售票2

Thread-1出售票1

更多java相关内容感兴趣的读者可查看本站专题:《Java进程与线程操作技巧总结》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

本文标题: Java同步代码块和同步方法原理与应用案例详解

本文地址: http://www.cppcns.com/ruanjian/java/281711.html

java同步方法完成案例_Java同步代码块和同步方法原理与应用案例详解相关推荐

  1. java 同步块原理_Java同步代码块和同步方法原理与应用案例详解

    Java同步代码块和同步方法原理与应用案例详解 发布于 2020-8-7| 复制链接 摘记: 本文实例讲述了Java同步代码块和同步方法.分享给大家供大家参考,具体如下:一 点睛所谓原子性:一段代码要 ...

  2. java同步方法同步块_java 同步代码块与同步方法

    同步代码块 synchronized(obj) {//代码块 } obj 为同步监视器,以上代码的含义为:线程开始执行同步代码块(中的代码)之前,必须先获得对同步监视器的锁定. 代码块中的代码是执行代 ...

  3. 多线程(并发)买票的案例详解同步代码块和同步方法 (复习)

    文章目录 前言 简单的原理: 队列+锁 常见的买票案例(线程安全:多个线程操作同一个数据.) 结果: 使用同步代码块或者同步方法(解决线程不安全的问题) 添加的方式一:synchronized 关键字 ...

  4. 同步监视器之同步代码块、同步方法

    如果有多个线程访问共享资源,可能会出现当一个线程没有处理完业务,然后另一个线程进入,从而导致共享资源出现不安全的情况. 日常例子:银行取钱,A和B有拥有同一个银行账户,A用存折在柜台取钱,B在取款机取 ...

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

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

  6. java中synchronized(同步代码块和同步方法)详解及区别

    问题的由来: 看到这样一个面试题: ? 1 2 3 4 5 6 //下列两个方法有什么区别 public synchronized void method1(){} public void metho ...

  7. 同步代码块和同步方法案例实战

    什么是同步 同步就是加锁,不让其它人访问 synchronized指的就是同步的意思 什么情况下需要同步 当多线程并发, 我们希望某一段代码执行的过程中CPU不要切换到其他线程工作. 这时就需要同步, ...

  8. java 代码同步_Java同步代码块 转

    Java 同步块(synchronized block)用来标记方法或者代码块是同步的.Java同步块用来避免竞争.本文介绍以下内容: Java同步关键字(synchronzied) 实例方法同步 静 ...

  9. java类静态初始化_Java静态代码块和类初始化、实例初始化过程

    1. 静态代码块 静态代码块:定义在类中方法外,使用static修饰 ①可以为类变量(静态变量)初始化 ②静态代码块在第一次使用这个类之前执行,即在类初始化时执行,且只执行一次 ③若有多个静态代码块, ...

最新文章

  1. 如何通过Keil将程序正确的下载进flash中
  2. 模块(sys/os/序列化模块)
  3. oracle 删除主键_大数据量删除的思考 4
  4. Visual.Assist.X 菜单汉化
  5. 《团队作业第三、第四周》五小福团队作业--Scrum 冲刺阶段--Day6
  6. android picasso 三级缓存,Android中图片的三级缓存浅析
  7. CAN笔记(23) CanFestival移植
  8. 80-450-010-原理-MySQL索引
  9. Ant Design Vue 菜单刷新后保持菜单选中/点击菜单,收起其他展开的所有菜单,保持菜单聚焦简洁
  10. 在excel中如何筛选重复数据_如何将Excel重复数据筛选出来?简单技巧有三种!...
  11. 混合非线性整数规划matlab,非线性整数规划matlab
  12. 【读书总结】 《你只是看起来很努力》——致那段应该奋斗的岁月
  13. 有线网口设备转为无线wifi,RJ45网口转wifi,即插即用,网卡转无线wifi完全透传
  14. 系统设计-开放平台(一)
  15. perl脚本语言学习
  16. 论文查重图片会不会算重复率?
  17. Tita绩效宝:为你的绩效评估提供100条评语案例
  18. 区块链到底是不是骗局
  19. 美赛数学建模 | 信息检索与竞赛工具 降低信息差
  20. 计算器 控制器 计算机的神经中枢,计算机基础知识(9).ppt

热门文章

  1. 学好python需要多久-python入门要学多久
  2. 2018python培训-2018python深度学习核心技术培训班
  3. 如何用python计算工资-手把手用Python教你分析运筹学薪资状况
  4. python导入py文件-Python导入其他文件中的.py文件 即模块
  5. python爬虫实例100-Python 练习实例1
  6. python input与返回值-Python基础教程之输入输出和运算符
  7. Opengl-法线贴图(用来细化表面的表现表现的凹凸)
  8. 题目1197:奇偶校验
  9. 修改ubuntu的终端提示符
  10. Jsoup解析XML