多线程之同步方法及同步块
package com.yeyue.syn;
//不安全的买票
public class UnSafeBuyTicket {
public static void main(String[] args) {
BuyTicket ticket = new BuyTicket();
new Thread(ticket,"可怜的我").start();
new Thread(ticket,"厉害的你们").start();
new Thread(ticket,"可恶的黄牛党").start();
}
}
class BuyTicket implements Runnable{
private int tickerNums = 10; //票数
boolean flag = true; //标志位,用于停止线程
取钱
package com.yeyue.syn;
//不完全的取钱
//两个人去银行取钱,账户,约
public class UsafeBank {
public static void main(String[] args) {
Account account = new Account(100,"结婚基金");
//你去取钱
Drawing you = new Drawing(account,50,"你");
//女朋友取钱
Drawing girlfriend = new Drawing(account,100,"girlfriend");
you.start();
girlfriend.start();
}
}
//账户
class Account {
int money;
String name;
public Account(int money, String name) {
this.money = money;
this.name = name;
}
}
//银行:模拟取钱
class Drawing extends Thread {
Account account;
int drawingMoney;
int nowMoney;
public Drawing(Account account,int drawingMoney,String name){
super(name);
this.account = account;
this.drawingMoney = drawingMoney;
}
//取钱
//synchronized默认锁的是this
