线程同步:
当多线程访问同一个对象(临界资源),如果破坏了原子操作,会导致数据的不一致;
关键字: synchronized 同步的----
用法: 1.synchronized(对象o){}//对o加锁的同步代码块
每个java对象都有一个互斥锁标记,用来分配线程.只有拿到o锁标记的线程,
才能进入对o加锁的同步代码块
2.方法修饰 同步方法 对 this 加锁的同步代码块
//只有拿到对象锁标记的线程,才能调用o的同步代码块
每个对象都有一个锁池,用来存放等待的线程
线程死锁
一个线程可以同时拥有多个对象的锁标记<同步带代码块可以嵌套>-------容易造成死锁。解决死锁问题:
线程间通信:waite等待--notify通知。
任何对象都有一个等待队列,用来存放线程。