java同步代码块和同步函数

ゝ一世哀愁。 2022-08-13 11:46 338阅读 0赞
  1. package thread.sync;
  2. /*
  3. * 需求:储户,两个,每个都到银行存钱每次存100,,共存三次。
  4. */
  5. public class BankDemo {
  6. public static void main(String[] args) {
  7. Cus c = new Cus();
  8. System.out.println(c);
  9. //静态同步函数用此,该函数的字节码文件对象
  10. System.out.println(c.getClass());
  11. Thread t1 = new Thread(c);
  12. Thread t2 = new Thread(c);
  13. t1.start();
  14. t2.start();
  15. }
  16. }
  17. class Bank {
  18. private int sum;
  19. Object obj = new Object();
  20. //同步函数,它的锁是this
  21. public synchronized void add(int num){
  22. //同步代码块解决线程安全隐患
  23. // synchronized (obj){
  24. sum+=num;
  25. try {
  26. Thread.sleep(10);
  27. } catch (InterruptedException e) {
  28. e.printStackTrace();
  29. }
  30. System.out.println("sum="+sum+"--");
  31. // }
  32. }
  33. }
  34. class Cus implements Runnable{
  35. private Bank b = new Bank();
  36. @Override
  37. public void run() {
  38. for(int i = 0; i<3; i++){
  39. b.add(100);
  40. }
  41. }
  42. }

发表评论

表情:
评论列表 (有 0 条评论,338人围观)

还没有评论,来说两句吧...

相关阅读

    相关 同步方法同步

    > 从上一节中可以看到Java中多线程是不安全的,比如多人同时买票,票数会出现负数的情况;多人取钱,钱数会出现负数;多个线程操作同一个列表会出现多个线程覆盖列表统一地方的错误等

    相关 Java同步代码同步方法

    一 点睛 所谓原子性:一段代码要么执行,要么不执行,不存在执行一部分被中断的情况。言外之意是这段代码就像原子一样,不可拆分。 同步的含义:多线程在代码执行的关键点上,互通消