java同步方法完成案例_Java同步代码块和同步方法原理与应用案例详解
本文实例讲述了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同步代码块和同步方法原理与应用案例详解相关推荐
- java 同步块原理_Java同步代码块和同步方法原理与应用案例详解
Java同步代码块和同步方法原理与应用案例详解 发布于 2020-8-7| 复制链接 摘记: 本文实例讲述了Java同步代码块和同步方法.分享给大家供大家参考,具体如下:一 点睛所谓原子性:一段代码要 ...
- java同步方法同步块_java 同步代码块与同步方法
同步代码块 synchronized(obj) {//代码块 } obj 为同步监视器,以上代码的含义为:线程开始执行同步代码块(中的代码)之前,必须先获得对同步监视器的锁定. 代码块中的代码是执行代 ...
- 多线程(并发)买票的案例详解同步代码块和同步方法 (复习)
文章目录 前言 简单的原理: 队列+锁 常见的买票案例(线程安全:多个线程操作同一个数据.) 结果: 使用同步代码块或者同步方法(解决线程不安全的问题) 添加的方式一:synchronized 关键字 ...
- 同步监视器之同步代码块、同步方法
如果有多个线程访问共享资源,可能会出现当一个线程没有处理完业务,然后另一个线程进入,从而导致共享资源出现不安全的情况. 日常例子:银行取钱,A和B有拥有同一个银行账户,A用存折在柜台取钱,B在取款机取 ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- java中synchronized(同步代码块和同步方法)详解及区别
问题的由来: 看到这样一个面试题: ? 1 2 3 4 5 6 //下列两个方法有什么区别 public synchronized void method1(){} public void metho ...
- 同步代码块和同步方法案例实战
什么是同步 同步就是加锁,不让其它人访问 synchronized指的就是同步的意思 什么情况下需要同步 当多线程并发, 我们希望某一段代码执行的过程中CPU不要切换到其他线程工作. 这时就需要同步, ...
- java 代码同步_Java同步代码块 转
Java 同步块(synchronized block)用来标记方法或者代码块是同步的.Java同步块用来避免竞争.本文介绍以下内容: Java同步关键字(synchronzied) 实例方法同步 静 ...
- java类静态初始化_Java静态代码块和类初始化、实例初始化过程
1. 静态代码块 静态代码块:定义在类中方法外,使用static修饰 ①可以为类变量(静态变量)初始化 ②静态代码块在第一次使用这个类之前执行,即在类初始化时执行,且只执行一次 ③若有多个静态代码块, ...
最新文章
- 如何通过Keil将程序正确的下载进flash中
- 模块(sys/os/序列化模块)
- oracle 删除主键_大数据量删除的思考 4
- Visual.Assist.X 菜单汉化
- 《团队作业第三、第四周》五小福团队作业--Scrum 冲刺阶段--Day6
- android picasso 三级缓存,Android中图片的三级缓存浅析
- CAN笔记(23) CanFestival移植
- 80-450-010-原理-MySQL索引
- Ant Design Vue 菜单刷新后保持菜单选中/点击菜单,收起其他展开的所有菜单,保持菜单聚焦简洁
- 在excel中如何筛选重复数据_如何将Excel重复数据筛选出来?简单技巧有三种!...
- 混合非线性整数规划matlab,非线性整数规划matlab
- 【读书总结】 《你只是看起来很努力》——致那段应该奋斗的岁月
- 有线网口设备转为无线wifi,RJ45网口转wifi,即插即用,网卡转无线wifi完全透传
- 系统设计-开放平台(一)
- perl脚本语言学习
- 论文查重图片会不会算重复率?
- Tita绩效宝:为你的绩效评估提供100条评语案例
- 区块链到底是不是骗局
- 美赛数学建模 | 信息检索与竞赛工具 降低信息差
- 计算器 控制器 计算机的神经中枢,计算机基础知识(9).ppt