第十次总结 线程的异步和同步
- 线程的异步和同步?
- 如何实现线程的同步?
- 什么是线程池?
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); } } }