第十次总结 线程的异步和同步


	第十次总结  线程的异步和同步
[编程语言教程]

  1. 线程的异步和同步?
  2. 如何实现线程的同步?
  3. 什么是线程池?

1.线程的异步和同步?

异步:线程默认是异步执行的
多个线程可以同时操作同一块内存

 

如果对内存数据的修改执行异步操作,可能会出现错误的数据,叫做线程不安全

要保证数据安全,对于修改数据的操作,需要进行同步

 

同步:在同一个时间片段内,只能有一个线程来操作同一块内存空间

 

一般情况下,读操作是可以异步的
写操作必须要同步


2.如何实现线程的同步?

模拟银行取钱

Account类

/**
 * 银行账户类
 */
public class Account {

    //账户余额
    private int money = 1000;
  /**
     * 取钱的操作
     *
     * @param m 要取出的金额
     */
    public void quQian(int m) {if (money < m) {
            System.out.println("余额不足!");
        } else {
            try {
                Thread.sleep(1000);
            } catch (Exception ef) {
                ef.printStackTrace();
            }
            //计算出新的余额
            money = money - m;
            System.out.println("取出了" + m + "元,余额为:" + money);
        }
    }

}
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 第十次总结 线程的异步和同步