Java线程:线程的同步-同步方法
public class Test { public static void main(String[] args) { User u = new User("张三", 100); MyThread t1 = new MyThread("线程A", u, 20); MyThread t2 = new MyThread("线程B", u, -60); MyThread t3 = new MyThread("线程C", u, -80); MyThread t4 = new MyThread("线程D", u, -30); MyThread t5 = new MyThread("线程E", u, 32); MyThread t6 = new MyThread("线程F", u, 21); t1.start(); t2.start(); t3.start(); t4.start(); t5.start(); t6.start(); }
} public static class MyThread extends Thread { private User u; private int y = 0; MyThread(String name, User u, int y) { super(name); this.u = u; this.y = y; } public void run() { u.oper(y); }
} public static class User { private String code; private int cash; User(String code, int cash) { this.code = code; this.cash = cash; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } /** * 业务方法 * @param x 添加x万元 */ public synchronized void oper(int x) { try { Thread.sleep(10L); this.cash += x; System.out.println(Thread.currentThread().getName() + "运行结束,增加“" + x + "”,当前用户账户余额为:" + cash); Thread.sleep(10L); } catch (InterruptedException e) { e.printStackTrace(); } } @Override public String toString() { return "User{" + "code='" + code + '\'' + ", cash=" + cash + '}'; }
}
输出结果:
如果去掉oper(int x)方法的synchronized修饰符,然后运行程序,结果如下:
转载于:https://www.cnblogs.com/wanyong-wy/p/7718029.html
Java线程:线程的同步-同步方法相关推荐
- java中同步_在Java中的方法同步和语句同步(块同步) - Break易站
Java 多线程 线程主要通过共享对字段的访问和参考字段引用的对象进行通信.这种通信形式非常有效,但可能出现两种错误:线程干扰和内存一致性错误.需要一些同步构造来防止这些错误.以下示例显示了我们需要同 ...
- 【Java线程安全】 synchronized同步方法、同步块:模拟抢票、模拟取款
synchronized的使用 大佬之所以叫大佬,就是因为他们即使一次看不懂,看二十遍也要看懂,再对萌新说:这个方法不是挺简单的嘛 1.同步方法 要注意的是,synchronized锁的不是方法,而是 ...
- java同步锁售票_Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)...
学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程:线程是 ...
- JAVA中线程同步的方法(7种)汇总
JAVA中线程同步的方法(7种)汇总 同步的方法: 一.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法. ...
- Java多线程-线程的同步与锁
一.同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. 例如:两个线程ThreadA.ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据. package ...
- Java实现线程同步的方式
1. synchronized关键字 synchronized关键字保证在同一时刻,只有一个线程可以执行某个对象内某一个方法或某一段代码块. 重量级锁.包含两个特征:互斥性和可见性. synchron ...
- java什么时候需要同步_JAVA中线程在什么时候需要同步和互斥
JAVA中线程在什么时候需要同步和互斥 关注:265 答案:6 mip版 解决时间 2021-01-27 08:10 提问者时光易老 2021-01-27 03:32 JAVA中线程在什么时候需要 ...
- java runnable线程锁_多线程 java 同步 、锁 、 synchronized 、 Thread 、 Runnable
线程 1 线程概述 1.1 什么是线程 v 线程是程序执行的一条路径, 一个进程中可以包含多条线程 v 一个应用程序可以理解成就是一个进程 v 多线程并发执行可以提高程序的效率, 可以同时完成多 ...
- JAVA中线程同步的几种实现方法
JAVA中线程同步的几种实现方法 一.synchronized同步的方法: 1.synchronized同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁, ...
- 黑马毕向东Java课程笔记(day11):多线程(第一部分)——进程与线程+线程创建+线程安全与同步代码块+同步锁/死锁
多线程好文:添加链接描述 锁机制:synchronized.Lock.Condition.volatile(原子性可见性)--参考添加链接描述 1.进程与线程概述 首先,对于CPU执行每一个程序, ...
最新文章
- tunctl used bridge sub interface network used with multi-network env
- 不戴口罩还想出门?硬核口罩佩戴检测模型向你发出警告
- 图:BFS/DFS java实现
- 还在熬夜憋思路?这12篇最新论文打包送给你 | 本周值得读
- JAVA面试题(part3)--if条件语句
- 读书笔记2013第3本:《无价》
- 开源和devops_2016年开源工作报告:需要开发人员,DevOps和认证
- python 函数图解_Python函数说明(一)
- 综述|重邮高新波等最新《少样本目标检测算法》
- 操作系统课程设计报告
- 编程篇(002)-js实现一个打点计时器
- 【SPUSKU】简述
- 斐讯n1 linux升级内核,斐讯N1盒子OpenWRT固件升级全记录
- LVS专题-(3) 虚拟ip理解
- 【Mysql】 update语句更新原理
- CSS 让背景图片全部显示,填满父div
- 期货公司最低标准的手续费和保证金
- 解读全球云产业:一样的“云”,不一样的“推手”
- 特斯拉为什么刹不住车
- 目标检测论文阅读:EfficientDet算法笔记
热门文章
- 2020年大厂职级薪资一览表
- 15拆分成3个不同的自然数_15个小时搜救破拆,他磨破3双手套营救出4个生还者...
- 后副车架焊接机器人_车架全自动焊接机器人的日常维护保养方法
- success 已正常处理 hide_最新微信小程序授权的详细处理思路(一)
- filegee为啥没变动也更新_2020/10/07|02=下一步行动|evernote更新以及后续影响
- java双等号和equals_JAVA编程基础篇:hashCode的特性和作用
- java 二叉树的高度_Java实现二叉树的建立、计算高度与递归输出操作示例
- java tika pdf转图片_使用tika将pdf转为html
- django 如何提升性能(高并发)
- hadoop配置后无法通过主机名:50070访问,只能通过ip:50070访问