WEB开发网
开发学院软件开发Java 多线程设置模式 -- Read-Write Lock Pattern 阅读

多线程设置模式 -- Read-Write Lock Pattern

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示: 数据 Java代码publicclassData{privatefinalchar[]buffer;privatefinalReadWriteLocklock=newReadWriteLock();publicData(intsize){this.buffer=newchar[size];for

数据

Java代码   

public class Data { 
  private final char[] buffer; 
  private final ReadWriteLock lock = new ReadWriteLock(); 
  public Data(int size) { 
    this.buffer = new char[size]; 
    for (int i = 0; i < buffer.length; i++) { 
      buffer[i] = '*'; 
    } 
  } 
  public char[] read() throws InterruptedException { 
    lock.readLock(); 
    try { 
      return doRead(); 
    } finally { 
      lock.readUnlock(); 
    } 
  } 
  public void write(char c) throws InterruptedException { 
    lock.writeLock(); 
    try { 
      doWrite(c); 
    } finally { 
      lock.writeUnlock(); 
    } 
  } 
  private char[] doRead() { 
    char[] newbuf = new char[buffer.length]; 
    for (int i = 0; i < buffer.length; i++) { 
      newbuf[i] = buffer[i]; 
    } 
    slowly(); 
    return newbuf; 
  } 
  private void doWrite(char c) { 
    for (int i = 0; i < buffer.length; i++) { 
      buffer[i] = c; 
      slowly(); 
    } 
  } 
  private void slowly() { 
    try { 
      Thread.sleep(50); 
    } catch (InterruptedException e) { 
    } 
  } 
}

上一页  1 2 3 4  下一页

Tags:线程 设置 模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接