线程同步
·临界资源:多线程并发时,共享的同一个对象。
·原子操作:不可分割的多步操作,被视作一个整体,其顺序和步骤不可被打
乱或缺省。
·线程同步:多线程并发时,为了保证临界资源的正确性,而不能破坏程序中
的原子操作。
同步代码块
·同步代码块:对临界资源加锁
·位置:定义在方法内部
·synchronized (临界资源对象)
//代码(原子操作) .]
·执行原理:线程只有获取临界资源对象的锁标记,才能执行同步代码块I中的内容, 并且必须将中的所有代码都执行完成,才释放该线程获取的临界资源对象的领标记; 如果没有获取到临界资源对象的锁标记(锁标记被其他线程占用),则该线程进入阻塞状态,直到拿到临界资源对象的锁标记才会从阻塞状态结束,同时获取cpu时间片则执行0中的内容。
线程同步·
注意:
·任意对象都拥有单一的锁标记(监视器)
·线程同步时,必须保证多个线程共用同一个对象的锁,才能保证共享资源的正确性
<
·回顾:Arrayl.ist和Vector的区别?
ArrayList:线程不安全,运行效率快,内部方法为非同步方法·Vector:线程安全,运行效率慢,内部方法为同步方法