一、基本概念
异步编程模式与同步编程模式
异步编程模式:t1线程执行t1的,t2线程执行t2的.两个线程谁也不等谁。
同步编程模式:这里的同指的是协同。t1和t2线程执行的时候,t1必须等t2线程执行完毕之后才能执行。同步机制使程序等同单线程。
二、java多线程同步的目的
为了数据的安全,暂时放弃执行的效率
三、线程同步的条件
1.多线程环境
2.共享同一资源
3.数据涉及到修改操作
四、下面例子演示了在线程不同步时会出现的问题
package com.gdzy.SynchronizedTest;
/**
* 此程序模拟一个银行账户取款的操作, 有多个取款线程同时对一个账户进行操作, 在不使用线程同步时会出现错误
*/
public class SynchronizedTest01 {
public static void main(String[] args) { //主程序
Account acc = new Account("张三",10000);
Withdrawal w1 = new Withdrawal(acc);
Thread t1 = new Thread(w1);
Thread t2 = new Thread(w1);
Thread t3 = new Thread(w1);
Thread t4 = new Thread(w1);
Thread t5 = new Thread(w1);
Thread t6 = new Thread(w1);
t1.setName("取款人--1");
t2.setName("取款人--2");
t3.setName("取款人--3");
t4.setName("取款人--4");