正在加载图片...
五、线程的同步 由于同一进程的多个线程共享同一片存储空间,在带来 方便的同时,也带来了访问冲突这个严重的问题。Java语言 提供了专门机制以解决这种冲突,有效避免了同一个数据对 象被多个线程同时访问。 我们只需针对方法提出一套机制,这套机制就是 synchronized关键字,它包括两种用法:synchronized 方法和synchronized块。 1.synchronized方法:通过在方法声明中加入 synchronized关键字来声明synchronized方法。 synchronized方法控制对类成员变量的访问:每个类实例对 应一把锁,每个synchronized方法都必须获得调用该方法 的类实例的锁方能执行,否则所属线程阻塞,方法一旦执行, 就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞 的线程方能获得该锁,重新进入可执行状态。这种机制确保 了同一时刻对于每一个类实例,其所有声明为synchronized 的成员函数中至多只有一个处于可执行状态(因为至多只有 一个能够获得该类实例对应的锁),从而有效避免了类成员五、线程的同步 由于同一进程的多个线程共享同一片存储空间,在带来 方便的同时,也带来了访问冲突这个严重的问题。Java 语言 提供了专门机制以解决这种冲突,有效避免了同一个数据对 象被多个线程同时访问。 我们只需针对方法提出一套机制,这套机制就是 synchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块。 1. synchronized 方 法 : 通 过 在 方 法 声 明 中 加 入 synchronized 关 键 字 来 声 明 synchronized 方 法 。 synchronized 方法控制对类成员变量的访问:每个类实例对 应一把锁,每个 synchronized 方法都必须获得调用该方法 的类实例的锁方能执行,否则所属线程阻塞,方法一旦执行, 就独占该锁,直到从该方法返回时才将锁释放,此后被阻塞 的线程方能获得该锁,重新进入可执行状态。这种机制确保 了同一时刻对于每一个类实例,其所有声明为 synchronized 的成员函数中至多只有一个处于可执行状态(因为至多只有 一个能够获得该类实例对应的锁),从而有效避免了类成员
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有