首页 > 学院 > 开发设计 > 正文

同步线程的一个实例

2019-11-06 07:14:49
字体:
来源:转载
供稿:网友
package com.demo.thread;/** * 存钱线程 * @author zl * */public class SaveThread extends Thread{ PRivate BankBook bankBook; private double saveMomey; @Override public void run() { saveSomeMomey(saveMomey); } public SaveThread(String name,double momey,BankBook bb) { super(name); this.saveMomey = momey; this.bankBook = bb; } /** * 存钱 * @param someMomey */ public synchronized void saveSomeMomey(double someMomey){ System.out.println("查询的账户余额为"+bankBook.getTotalMomey()+","+Thread.currentThread().getName()+"开始存钱"); bankBook.setTotalMomey(bankBook.getTotalMomey()+someMomey); System.out.println(Thread.currentThread().getName()+"成功存钱"+someMomey+"元,目前账户余额为"+bankBook.getTotalMomey()); }}class BankBook { private double totalMomey; public BankBook(double momey) { this.totalMomey = momey; } public double getTotalMomey() { return totalMomey; } public void setTotalMomey(double totalMomey) { this.totalMomey = totalMomey; }}package com.demo.thread;/** 1. 同步线程的测试 2. @author zl 3. */public class SynchronizedThreadTest { public static void main(String[] args) { BankBook bb = new BankBook(500); SaveThread s1 = new SaveThread("妈妈", 200.00,bb); SaveThread s2 = new SaveThread("爸爸", 100.00,bb); SaveThread s3 = new SaveThread("儿子", 300.00,bb); SaveThread s4 = new SaveThread("女儿", 400.00,bb); s1.start(); s2.start(); s3.start(); s4.start(); }}

测试结果为: 这里写图片描述

去掉关键字synchronized 后的测试结果为: 这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表