码迷,mamicode.com
首页 > 编程语言 > 详细

java 中多线程的同步函数的运用

时间:2015-06-22 14:49:47      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

/*
 * 需求:
 * 银行有一个金库
 * 有两个储户,分别存300元。每次存100 , 存三次
 * 
 * 这个是有线程问题的,
 * 
 * 我们应该通过下边的三个方法来查找问题
 * 1.明确哪些代码是多线程运行的代码
 * 2.明确共享数据
 * 3.明确多线程运行代码中哪些是操作共享数据的
 */

class Bank
{
  private int sum;
   public synchronized void   add (int n)
{
sum = sum + n;
try {Thread.sleep (10);}catch (Exception e){}
System.out.println ("sum="+ sum);
}
}

class Cus implements Runnable
{
    private Bank bank = new Bank ();
    public void run(){
        for (int x=0; x<3;x++){
            bank.add(100);
            
        }
        
    }
}
public class BankDemo {

    public static void main(String[] args) {
        
Cus cus = new Cus ();
Thread t1 = new Thread (cus);
Thread t2 = new Thread (cus);
t1.start();
t2.start();

    }

}

上边代码中的synchorinized 关键字 是可以放到函数前边的,这就叫做同步函数 跟下边的用法是一个作用

Object obj = new Object ();

Synchronized (obj) {

 

//需要同步的代码块

}

java 中多线程的同步函数的运用

标签:

原文地址:http://www.cnblogs.com/machao/p/4593275.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!