- 同步线程
为解决多线程争用统一资源的争用问题,我们常用synchronized关键字修饰的方法来解决。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会锁住整个类。 - 同步是多线程中的重要概念。同步的使用可以保证在多线程运行的环境中,程序不会产生设计之外的错误结果。同步的实现方式有两种,同步方法和同步块,这两种方式都要用到synchronized关键字。
- 同步方法:
(1)同步块
代码实现:
package edu.xalead;
public class 吃包子 extends Thread {
private 包子类 p = null;
private String name = null;
public 吃包子(包子类 p,String name){
this.p = p;
this.name = name;
}
// public synchronized void eat(){
// //if (this.p.pack <= 0) break;
// // synchronized (p) {
// System.out.println(this.name + "吃第" + this.p.pack + "个包子");
// this.p.pack--;
//
// }
public void run(){
try {
while(true) {
// synchronized (p) {