基本信息
源码名称:java 集合 synchronized 操作示例代码
源码大小:8.21KB
文件格式:.zip
开发语言:Java
更新时间:2016-05-16
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍


package wpy.bank;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;

public class Account {
	private int money = 0;
	private int save_money = 0;
	private int off_money = 0;
	private String fileName = "log.txt";
	BufferedWriter writer = null;

	public int getMoney() {
		return money;
	}

	private int take_off_money = 0;

	public int getTake_off_money() {
		return take_off_money;
	}

	private boolean available = true;
	private boolean flag = true;
	private int multiple = 0;

	public Account(int money) {
		this.money = money;
		try {
			writer = new BufferedWriter(new FileWriter(fileName));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public boolean isFlag() {
		return flag;
	}

	public synchronized void save() {

		if (available && flag) {
			save_money = new Random(System.nanoTime()).nextInt(191)   10;
			System.out.println(" "   (save_money));
			try {
				// BufferedWriter writer1 =new BufferedWriter(new
				// FileWriter(fileName,true));
				writer.write(" "   save_money);
				writer.newLine();
				// writer.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			money  = save_money;
			if ((money / 500) > 0) {
				available = false;
				notify();
			}
		}

	}

	public synchronized void off() {
		if (available && flag) {
			try {
				wait();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if (!available && flag) {
			multiple = (int) ((save_money   money) / 500);
			off_money = multiple * 500;
			take_off_money  = off_money;
			System.out.println("-"   (off_money));
			try {
				// BufferedWriter writer2 =new BufferedWriter(new
				// FileWriter(fileName,true));
				writer.write("-"   off_money);
				writer.newLine();
				// writer.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			money -= off_money;
			available = true;
			// notify();
			if (take_off_money >=1000 ) {
				try {
					writer.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				flag = false;
			}
		}
	}

}