Java第4周实验

来源:互联网 发布:手机淘宝怎么退货退款 编辑:程序博客网 时间:2024/06/06 06:53

第4周:多线程与网页下载

1、线程同步程序,P174-176 8-4 

2、多线程的应用,了解利用多线程下载网页数据。

 

//P174例8-4,银行存取款,实现线程同步。class BankAccount//定义银行账户类 {  private static int amount=2000;//定义存款的方法 public void despoit(int m)  {  amount=amount+m;  System.out.println("小明存入["+m+"元]");  }  public void withdraw(int m)  {  amount=amount-m;  System.out.println("张新取走["+m+"元]");  if(amount<0)  System.out.println("***余额不足!***");  }  public int balance()//定义得到用户余额的方法 {  return amount;  }  }  class Customer extends Thread  {  String name;  BankAccount bs;//定义一个具体的账户对象  public Customer(BankAccount b,String s)  {  name=s;  bs=b;  }  public synchronized static void cus(String name,BankAccount bs)  {  if(name.equals("小明"))//判断用户是不是小明  {  try  {  for(int i=0;i<6;i++)  {  Thread.currentThread();  Thread.sleep((int)(Math.random())*300);  bs.despoit(1000);  }  }  catch(InterruptedException e)  {}  }  else  {  try  {  for(int i=0;i<6;i++)  {  Thread.currentThread();  Thread.sleep((int)(Math.random()*300));  bs.withdraw(1000);  }  }  catch(InterruptedException e)  {}  }  }  public void run()  {  cus(name,bs);  }  }  public class AccountTest {  public static void main(String args[])throws InterruptedException  {  BankAccount bs=new BankAccount();  Customer customer1=new Customer(bs,"小明");  Customer customer2=new Customer(bs,"张新");  Thread t1=new Thread(customer1);  Thread t2=new Thread(customer2);  t1.start();  t2.start();  Thread.currentThread();  Thread.sleep(500);  }  }

 

 

0 0
原创粉丝点击