你的位置:首页 > 软件开发 > Java > Java多线程(一)同步与等待唤醒

Java多线程(一)同步与等待唤醒

发布时间:2015-08-15 21:00:06
1:数据安全问题 1.1:什么情况下会出现数据安全问题? 多个线程对同一个资源进行操作,并且操作资源的语句有多条。那么这个时候这些语句因为cpu的随机性,有可能被多个线程分开执行。导致数据安全问题。 ...

 1:数据安全问题

      1.1:什么情况下会出现数据安全问题?

            多个线程对同一个资源进行操作,并且操作资源的语句有多条。那么这个时候这些语句因为cpu的随机性,有可能被多个线程分开执行。导致数据安全问题。

             例子:有3个人分别是你爸、你妈妈、你姐,去你的一个账户汇钱给你,每一个只能存3次,一次只能存100元。每存一次,请打显示出账户里的余额。代码体现:

Java多线程(一)同步与等待唤醒Java多线程(一)同步与等待唤醒
 1 public class SaveMoneyDemo1 { 2    3   public static void main(String[] args) { 4     SaveDemo1 s = new SaveDemo1(); 5     Thread t1 = new Thread(s); 6     t1.setName("老爸"); 7     Thread t2 = new Thread(s); 8     t2.setName("老妈"); 9     Thread t3 = new Thread(s);10     t3.setName("姐姐");11     t1.start();12     t2.start();13     t3.start();14   }15 16 }17 18 class SaveDemo1 implements Runnable{19   private int sum = 0;20   //要执行的代码块放在run方法里面。21   public void run() {22     //每个人能存三次,就是循环三遍23     for(int i=0; i<3; i++){24       sum+=100;25       System.out.println(Thread.currentThread().getName()+"给你汇了100,目前账号共有 "+sum+" 元");26           27     }28   }29 }30 /**31  * 执行结果:32     老妈给你汇了100,目前账号共有 200 元33     老妈给你汇了100,目前账号共有 400 元34     老妈给你汇了100,目前账号共有 500 元35     姐姐给你汇了100,目前账号共有 300 元36     姐姐给你汇了100,目前账号共有 600 元37     姐姐给你汇了100,目前账号共有 700 元38     老爸给你汇了100,目前账号共有 200 元39     老爸给你汇了100,目前账号共有 800 元40     老爸给你汇了100,目前账号共有 900 元41  * 42 */

原标题:Java多线程(一)同步与等待唤醒

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。