类java.util.concurrent.locks.ReadWriteLock源码实例Demo

下面列出了怎么用java.util.concurrent.locks.ReadWriteLock的API类实例代码及写法,或者点击链接到github查看源代码。

private CoreDocumentSynchronizationConfig(
    final MongoCollection<CoreDocumentSynchronizationConfig> docsColl,
    final MongoNamespace namespace,
    final BsonValue documentId,
    final ChangeEvent<BsonDocument> lastUncommittedChangeEvent,
    final long lastResolution,
    final BsonDocument lastVersion,
    final ReadWriteLock docsLock,
    final boolean isStale,
    final boolean isPaused,
    final long lastKnownHash
) {
  this.docsColl = docsColl;
  this.namespace = namespace;
  this.documentId = documentId;
  this.lastResolution = lastResolution;
  this.lastKnownRemoteVersion = lastVersion;
  this.lastUncommittedChangeEvent = lastUncommittedChangeEvent;
  this.docLock = docsLock;
  this.isStale = isStale;
  this.isPaused = isPaused;
  this.lastKnownHash = lastKnownHash;
}
 
源代码2 项目: linstor-server   文件: UpdateMonitorImpl.java
@Inject
public UpdateMonitorImpl(
    @Named(CoreModule.RECONFIGURATION_LOCK)  ReadWriteLock reconfigurationLockRef,
    @Named(CoreModule.NODES_MAP_LOCK) ReadWriteLock nodesMapLockRef,
    @Named(CoreModule.RSC_DFN_MAP_LOCK) ReadWriteLock rscDfnMapLockRef,
    @Named(CoreModule.STOR_POOL_DFN_MAP_LOCK) ReadWriteLock storPoolDfnMapLockRef
)
{
    reconfigurationLock = reconfigurationLockRef;
    nodesMapLock = nodesMapLockRef;
    rscDfnMapLock = rscDfnMapLockRef;
    storPoolDfnMapLock = storPoolDfnMapLockRef;

    // Don't start with 0 to ensure the controller mirrors our fullSyncId
    fullSyncId = new AtomicLong(2);

    awaitedUpdateId = new AtomicLong(0);
}
 
源代码3 项目: dremio-oss   文件: RocksDBStore.java
public RocksDBStore(String name, ColumnFamilyDescriptor family, ColumnFamilyHandle handle, RocksDB db, int stripes,
                    MetaManager metaManager) {
  super();
  this.family = family;
  this.name = name;
  this.db = db;
  this.parallel = stripes;
  this.handle = handle;
  this.sharedLocks = new AutoCloseableLock[stripes];
  this.exclusiveLocks = new AutoCloseableLock[stripes];
  this.metaManager = metaManager;

  for (int i = 0; i < stripes; i++) {
    ReadWriteLock core = new ReentrantReadWriteLock();
    sharedLocks[i] = new AutoCloseableLock(core.readLock());
    exclusiveLocks[i] = new AutoCloseableLock(core.writeLock());
  }

  registerMetrics();
}
 
源代码4 项目: hadoop   文件: ContainerImpl.java
public ContainerImpl(Configuration conf, Dispatcher dispatcher,
    NMStateStoreService stateStore, ContainerLaunchContext launchContext,
    Credentials creds, NodeManagerMetrics metrics,
    ContainerTokenIdentifier containerTokenIdentifier) {
  this.daemonConf = conf;
  this.dispatcher = dispatcher;
  this.stateStore = stateStore;
  this.launchContext = launchContext;
  this.containerTokenIdentifier = containerTokenIdentifier;
  this.containerId = containerTokenIdentifier.getContainerID();
  this.resource = containerTokenIdentifier.getResource();
  this.diagnostics = new StringBuilder();
  this.credentials = creds;
  this.metrics = metrics;
  user = containerTokenIdentifier.getApplicationSubmitter();
  ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
  this.readLock = readWriteLock.readLock();
  this.writeLock = readWriteLock.writeLock();

  stateMachine = stateMachineFactory.make(this);
}
 
源代码5 项目: summerframework   文件: LockInstance.java
public LockInstance createLockIfNotExist() {
    if (getLock() != null) {
        return this;
    }
    Assert.notNull(getName(), "Lock name can not be null");
    switch (getType()) {
        case DEFAULT:
            Lock lock = lockFactory.getLock(this);
            this.setLock(lock);
            break;
        case READ:
            ReadWriteLock read = lockFactory.getReadWriteLock(this);
            this.setReadWriteLock(read);
            this.setLock(read.readLock());
            break;
        case WRITE:
            ReadWriteLock write = lockFactory.getReadWriteLock(this);
            this.setReadWriteLock(write);
            this.setLock(write.writeLock());
            break;
        default:
            Assert.notNull(this.getType(), "LockType cant not be null");
            break;
    }
    return this;
}
 
源代码6 项目: linstor-server   文件: StltApiCallHandlerUtils.java
@Inject
public StltApiCallHandlerUtils(
    ErrorReporter errorReporterRef,
    @ApiContext AccessContext apiCtxRef,
    ControllerPeerConnector controllerPeerConnectorRef,
    @Named(CoreModule.NODES_MAP_LOCK) ReadWriteLock nodesMapLockRef,
    @Named(CoreModule.STOR_POOL_DFN_MAP_LOCK) ReadWriteLock storPoolDfnMapLockRef,
    @Named(CoreModule.RSC_DFN_MAP_LOCK) ReadWriteLock rscDfnMapLockRef,
    StorageLayer storageLayerRef,
    DeviceProviderMapper deviceProviderMapperRef,
    LockGuardFactory lockGuardFactoryRef,
    Provider<DeviceManager> devMgrProviderRef
)
{
    errorReporter = errorReporterRef;
    apiCtx = apiCtxRef;
    controllerPeerConnector = controllerPeerConnectorRef;
    nodesMapLock = nodesMapLockRef;
    storPoolDfnMapLock = storPoolDfnMapLockRef;
    rscDfnMapLock = rscDfnMapLockRef;
    storageLayer = storageLayerRef;
    deviceProviderMapper = deviceProviderMapperRef;
    lockGuardFactory = lockGuardFactoryRef;
    devMgr = devMgrProviderRef;
}
 
源代码7 项目: localization_nifi   文件: EventFileManager.java
public void releaseWriteLock(final File file) {
    final String key = getMapKey(file);

    boolean updated = false;
    while (!updated) {
        final Tuple<ReadWriteLock, Integer> tuple = lockMap.get(key);
        if (tuple == null) {
            throw new IllegalMonitorStateException("Lock is not owned");
        }

        // If this is the only reference to the lock, remove it from the map and then unlock.
        if (tuple.getValue() <= 1) {
            updated = lockMap.remove(key, tuple);
            if (updated) {
                tuple.getKey().writeLock().unlock();
            }
        } else {
            final Tuple<ReadWriteLock, Integer> updatedTuple = new Tuple<>(tuple.getKey(), tuple.getValue() - 1);
            updated = lockMap.replace(key, tuple, updatedTuple);
            if (updated) {
                tuple.getKey().writeLock().unlock();
            }
        }
    }
}
 
源代码8 项目: linstor-server   文件: ControllerDebugModule.java
@Provides
CmdDisplayNodes cmdDisplayNodes(
    @Named(CoreModule.RECONFIGURATION_LOCK) ReadWriteLock reconfigurationLockRef,
    @Named(CoreModule.NODES_MAP_LOCK) ReadWriteLock nodesMapLockRef,
    NodeRepository nodeRepository,
    CoreModule.NodesMap nodesMap
)
    throws AccessDeniedException
{
    return new CmdDisplayNodes(
        reconfigurationLockRef,
        nodesMapLockRef,
        nodeRepository::getObjProt,
        nodesMap
    );
}
 
源代码9 项目: linstor-server   文件: ControllerDebugModule.java
@Provides
CmdDisplayResourceDfn cmdDisplayResourceDfn(
    @Named(CoreModule.RECONFIGURATION_LOCK) ReadWriteLock reconfigurationLockRef,
    @Named(CoreModule.RSC_DFN_MAP_LOCK) ReadWriteLock rscDfnMapLockRef,
    ResourceDefinitionRepository resourceDefinitionRepository,
    CoreModule.ResourceDefinitionMap resourceDefinitionMap
)
    throws AccessDeniedException
{
    return new CmdDisplayResourceDfn(
        reconfigurationLockRef,
        rscDfnMapLockRef,
        resourceDefinitionRepository::getObjProt,
        resourceDefinitionMap
    );
}
 
源代码10 项目: linstor-server   文件: SatelliteCoreModule.java
@Override
protected void configure()
{
    bind(String.class).annotatedWith(Names.named(CoreModule.MODULE_NAME))
        .toInstance(LinStor.SATELLITE_MODULE);

    bind(ReadWriteLock.class).annotatedWith(Names.named(STLT_CONF_LOCK))
        .toInstance(new ReentrantReadWriteLock(true));

    bind(ControllerPeerConnector.class).to(ControllerPeerConnectorImpl.class);
    // bind(UpdateMonitor.class).to(UpdateMonitorImpl.class);
    // bind(DeviceManager.class).to(DeviceManagerImpl.class);
    // install(new FactoryModuleBuilder()
    //    .implement(DeviceManagerImpl.DeviceHandlerInvocation.class,
    //       DeviceManagerImpl.DeviceHandlerInvocation.class)
    //    .build(DeviceManagerImpl.DeviceHandlerInvocationFactory.class));

    bind(Path.class).annotatedWith(Names.named(DRBD_CONFIG_PATH)).toInstance(
        FileSystems.getDefault().getPath(CoreModule.CONFIG_PATH)
    );
}
 
源代码11 项目: linstor-server   文件: VlmAllocatedFetcherProto.java
@Inject
public VlmAllocatedFetcherProto(
    ScopeRunner scopeRunnerRef,
    CtrlStltSerializer ctrlStltSerializerRef,
    @Named(CoreModule.NODES_MAP_LOCK) ReadWriteLock nodesMapLockRef,
    @Named(CoreModule.RSC_DFN_MAP_LOCK) ReadWriteLock rscDfnMapLockRef,
    @Named(CoreModule.STOR_POOL_DFN_MAP_LOCK) ReadWriteLock storPoolDfnMapLockRef,
    CtrlApiDataLoader ctrlApiDataLoaderRef,
    NodeRepository nodeRepositoryRef,
    @PeerContext Provider<AccessContext> peerAccCtxRef
)
{
    scopeRunner = scopeRunnerRef;
    ctrlStltSerializer = ctrlStltSerializerRef;
    nodesMapLock = nodesMapLockRef;
    rscDfnMapLock = rscDfnMapLockRef;
    storPoolDfnMapLock = storPoolDfnMapLockRef;
    ctrlApiDataLoader = ctrlApiDataLoaderRef;
    nodeRepository = nodeRepositoryRef;
    peerAccCtx = peerAccCtxRef;
}
 
源代码12 项目: LearningOfThinkInJava   文件: ReadWriteLockDemo1.java
public static void main(String[] args) {
    //创建并发访问的账户
    MyCount myCount = new MyCount("95599200901215522", 10000);
    //创建一个锁对象
    ReadWriteLock lock = new ReentrantReadWriteLock(false);
    //创建一个线程池
    ExecutorService pool = Executors.newFixedThreadPool(2);
    //创建一些并发访问用户,一个信用卡,存的存,取的取,好热闹啊
    User u1 = new User("张三", myCount, -4000, lock, true);
    User u2 = new User("张三他爹", myCount, 6000, lock, false);
    User u3 = new User("张三他弟", myCount, -8000, lock, false);
    User u4 = new User("张三", myCount, 800, lock, false);
    User u5 = new User("张三他爹", myCount, 0, lock, true);
    //在线程池中执行各个用户的操作
    pool.execute(u1);
    pool.execute(u2);
    pool.execute(u3);
    pool.execute(u4);
    pool.execute(u5);
    //关闭线程池
    pool.shutdown();
}
 
源代码13 项目: linstor-server   文件: NodeInternalCallHandler.java
@Inject
public NodeInternalCallHandler(
    ErrorReporter errorReporterRef,
    @ApiContext AccessContext apiCtxRef,
    CtrlStltSerializer ctrlStltSerializerRef,
    Provider<Peer> peerRef,
    @Named(CoreModule.NODES_MAP_LOCK) ReadWriteLock nodesMapLockRef,
    CtrlApiDataLoader ctrlApiDataLoaderRef
)
{
    errorReporter = errorReporterRef;
    apiCtx = apiCtxRef;
    ctrlStltSerializer = ctrlStltSerializerRef;
    peer = peerRef;
    nodesMapLock = nodesMapLockRef;
    ctrlApiDataLoader = ctrlApiDataLoaderRef;
}
 
@Inject
public CtrlFullSyncResponseApiCallHandler(
    @ApiContext AccessContext apiCtxRef,
    ScopeRunner scopeRunnerRef,
    CtrlSatelliteConnectionNotifier ctrlSatelliteConnectionNotifierRef,
    @Named(CoreModule.NODES_MAP_LOCK) ReadWriteLock nodesMapLockRef,
    @Named(CoreModule.RSC_DFN_MAP_LOCK) ReadWriteLock rscDfnMapLockRef,
    Provider<Peer> satelliteProviderRef
)
{
    apiCtx = apiCtxRef;
    scopeRunner = scopeRunnerRef;
    ctrlSatelliteConnectionNotifier = ctrlSatelliteConnectionNotifierRef;
    nodesMapLock = nodesMapLockRef;
    rscDfnMapLock = rscDfnMapLockRef;
    satelliteProvider = satelliteProviderRef;
}
 
@Inject
public StorPoolInternalCallHandler(
    ErrorReporter errorReporterRef,
    @ApiContext AccessContext apiCtxRef,
    CtrlTransactionHelper ctrlTransactionHelperRef,
    CtrlApiDataLoader ctrlApiDataLoaderRef,
    ResponseConverter responseConverterRef,
    CtrlStltSerializer ctrlStltSerializerRef,
    Provider<Peer> peerRef,
    @PeerContext Provider<AccessContext> peerAccCtxRef,
    @Named(CoreModule.NODES_MAP_LOCK) ReadWriteLock nodesMapLockRef,
    @Named(CoreModule.STOR_POOL_DFN_MAP_LOCK) ReadWriteLock storPoolDfnMapLockRef
)
{
    errorReporter = errorReporterRef;
    apiCtx = apiCtxRef;
    ctrlTransactionHelper = ctrlTransactionHelperRef;
    ctrlApiDataLoader = ctrlApiDataLoaderRef;
    responseConverter = responseConverterRef;
    ctrlStltSerializer = ctrlStltSerializerRef;
    peer = peerRef;
    peerAccCtx = peerAccCtxRef;
    nodesMapLock = nodesMapLockRef;
    storPoolDfnMapLock = storPoolDfnMapLockRef;
}
 
@Inject
public CtrlDrbdProxyEnableApiCallHandler(
    @ApiContext AccessContext apiCtxRef,
    ScopeRunner scopeRunnerRef,
    CtrlTransactionHelper ctrlTransactionHelperRef,
    CtrlSatelliteUpdateCaller ctrlSatelliteUpdateCallerRef,
    CtrlApiDataLoader ctrlApiDataLoaderRef,
    ResponseConverter responseConverterRef,
    @Named(CoreModule.NODES_MAP_LOCK) ReadWriteLock nodesMapLockRef,
    @Named(CoreModule.RSC_DFN_MAP_LOCK) ReadWriteLock rscDfnMapLockRef,
    CtrlDrbdProxyHelper drbdProxyHelperRef
)
{
    apiCtx = apiCtxRef;
    scopeRunner = scopeRunnerRef;
    ctrlTransactionHelper = ctrlTransactionHelperRef;
    ctrlSatelliteUpdateCaller = ctrlSatelliteUpdateCallerRef;
    ctrlApiDataLoader = ctrlApiDataLoaderRef;
    responseConverter = responseConverterRef;
    nodesMapLock = nodesMapLockRef;
    rscDfnMapLock = rscDfnMapLockRef;
    drbdProxyHelper = drbdProxyHelperRef;
}
 
源代码17 项目: linstor-server   文件: LockGuardFactory.java
@Inject
public LockGuardFactory(
    @Named(CoreModule.RECONFIGURATION_LOCK) ReadWriteLock reconfigurationLockRef,
    @Named(CoreModule.NODES_MAP_LOCK) ReadWriteLock nodesMapLockRef,
    @Named(CoreModule.RSC_DFN_MAP_LOCK) ReadWriteLock rscDfnMapLockRef,
    @Named(CoreModule.STOR_POOL_DFN_MAP_LOCK) ReadWriteLock storPoolDfnMapLockRef,
    @Named(CoreModule.CTRL_CONF_LOCK) ReadWriteLock ctrlConfigLockRef,
    @Named(CoreModule.KVS_MAP_LOCK) ReadWriteLock kvsMapLockRef,
    @Named(CoreModule.RSC_GROUP_MAP_LOCK) ReadWriteLock rscGrpMapLockRef
)
{
    reconfigurationLock = reconfigurationLockRef;
    nodesMapLock = nodesMapLockRef;
    rscDfnMapLock = rscDfnMapLockRef;
    storPoolDfnMapLock = storPoolDfnMapLockRef;
    ctrlConfigLock = ctrlConfigLockRef;
    kvsMapLock = kvsMapLockRef;
    rscGrpMapLock = rscGrpMapLockRef;
}
 
源代码18 项目: jstarcraft-core   文件: LuceneEngine.java
public LuceneEngine(IndexWriterConfig config, Path path) {
    try {
        this.config = config;
        Directory transienceDirectory = new ByteBuffersDirectory();
        this.transienceManager = new TransienceManager((IndexWriterConfig) BeanUtils.cloneBean(config), transienceDirectory);
        Directory persistenceDirectory = FSDirectory.open(path);
        this.persistenceManager = new PersistenceManager((IndexWriterConfig) BeanUtils.cloneBean(config), persistenceDirectory);
        this.searcher = new LuceneSearcher(this.transienceManager, this.persistenceManager);

        this.semaphore = new AtomicInteger();
        ReadWriteLock lock = new ReentrantReadWriteLock();
        this.readLock = lock.readLock();
        this.writeLock = lock.writeLock();
    } catch (Exception exception) {
        throw new StorageException(exception);
    }
}
 
源代码19 项目: linstor-server   文件: CmdDisplayLockStatus.java
private void reportRwLock(PrintStream output, String label, ReadWriteLock readWriteLock)
{
    ReentrantReadWriteLock reentrantReadWriteLock = (ReentrantReadWriteLock) readWriteLock;

    boolean writeLocked = reentrantReadWriteLock.isWriteLocked();
    boolean fair = reentrantReadWriteLock.isFair();
    boolean queued = reentrantReadWriteLock.hasQueuedThreads();
    int readerCount = reentrantReadWriteLock.getReadLockCount();

    output.printf(
        RWLOCK_FORMAT,
        label,
        writeLocked ? "Y" : "N",
        fair ? "Y" : "N",
        queued ? "Y" : "N",
        readerCount
    );
}
 
源代码20 项目: linstor-server   文件: SatelliteDebugModule.java
@Provides
CmdDisplayResourceDfn cmdDisplayResourceDfn(
    @Named(CoreModule.RECONFIGURATION_LOCK) ReadWriteLock reconfigurationLockRef,
    @Named(CoreModule.RSC_DFN_MAP_LOCK) ReadWriteLock rscDfnMapLockRef,
    CoreModule.ResourceDefinitionMap rscDfnMapRef
)
{
    return new CmdDisplayResourceDfn(reconfigurationLockRef, rscDfnMapLockRef, null, rscDfnMapRef);
}
 
源代码21 项目: Flink-CEPplus   文件: BlobServerConnection.java
/**
 * Creates a new BLOB connection for a client request.
 *
 * @param clientSocket The socket to read/write data.
 * @param blobServer The BLOB server.
 */
BlobServerConnection(Socket clientSocket, BlobServer blobServer) {
	super("BLOB connection for " + clientSocket.getRemoteSocketAddress());
	setDaemon(true);

	this.clientSocket = clientSocket;
	this.blobServer = checkNotNull(blobServer);

	ReadWriteLock readWriteLock = blobServer.getReadWriteLock();

	this.readLock = readWriteLock.readLock();
}
 
源代码22 项目: LearningOfThinkInJava   文件: ReadWriteLockDemo1.java
User(String name, MyCount myCount, int iocash, ReadWriteLock myLock, boolean ischeck) {
    this.name = name;
    this.myCount = myCount;
    this.iocash = iocash;
    this.myLock = myLock;
    this.ischeck = ischeck;
}
 
源代码23 项目: azeroth   文件: MemoryTokenStore.java
public MemoryTokenStore() {
    this.cache = CacheBuilder.newBuilder().softValues().expireAfterAccess(120, TimeUnit.SECONDS)
            .build();
    ReadWriteLock lock = new ReentrantReadWriteLock();
    this.r = lock.readLock();
    this.w = lock.writeLock();
}
 
源代码24 项目: strongbox   文件: DynamoDB.java
public static DynamoDB fromCredentials(AWSCredentialsProvider awsCredentials,
                                       ClientConfiguration clientConfiguration,
                                       SecretsGroupIdentifier groupIdentifier,
                                       ReadWriteLock readWriteLock) {
    AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
        .withCredentials(awsCredentials)
        .withClientConfiguration(verifyOrThrow(transformAndVerifyOrThrow(clientConfiguration)))
        .withRegion(groupIdentifier.region.getName())
        .build();
    return new DynamoDB(client, awsCredentials, clientConfiguration, groupIdentifier, readWriteLock);
}
 
源代码25 项目: TeaStore   文件: DriveStorage.java
@Override
public boolean saveData(StoreImage data) {
  // We return true so we do not trigger an error. This is intended
  if (!dataIsStorable(data)) {
    return true;
  }

  Path imgFile = workingDir.resolve(Long.toString(data.getId()));
  if (imgFile.toFile().exists()) {
    return true;
  }

  ReadWriteLock l = getIDLock(data.getId());
  l.writeLock().lock();

  try {
    Files.write(imgFile, data.getByteArray(), StandardOpenOption.CREATE, StandardOpenOption.WRITE,
        StandardOpenOption.TRUNCATE_EXISTING);
  } catch (IOException ioException) {
    log.warn("An IOException occured while trying to write the file \"" + imgFile.toAbsolutePath()
        + "\" to disk.", ioException);
    return false;
  } finally {
    l.writeLock().unlock();
  }

  return true;
}
 
源代码26 项目: hadoop   文件: KeyAuthorizationKeyProvider.java
/**
 * The constructor takes a {@link KeyProviderCryptoExtension} and an
 * implementation of <code>KeyACLs</code>. All calls are delegated to the
 * provider keyProvider after authorization check (if required)
 * @param keyProvider 
 * @param acls
 */
public KeyAuthorizationKeyProvider(KeyProviderCryptoExtension keyProvider,
    KeyACLs acls) {
  super(keyProvider, null);
  this.provider = keyProvider;
  this.acls = acls;
  ReadWriteLock lock = new ReentrantReadWriteLock(true);
  readLock = lock.readLock();
  writeLock = lock.writeLock();
}
 
源代码27 项目: localization_nifi   文件: EventFileManager.java
private ReadWriteLock updateCount(final File file, final Function<Integer, Integer> update) {
    final String key = getMapKey(file);
    boolean updated = false;

    Tuple<ReadWriteLock, Integer> updatedTuple = null;
    while (!updated) {
        final Tuple<ReadWriteLock, Integer> tuple = lockMap.computeIfAbsent(key, k -> new Tuple<>(new ReentrantReadWriteLock(), 0));
        final Integer updatedCount = update.apply(tuple.getValue());
        updatedTuple = new Tuple<>(tuple.getKey(), updatedCount);
        updated = lockMap.replace(key, tuple, updatedTuple);
    }

    return updatedTuple.getKey();
}
 
源代码28 项目: sailfish-core   文件: DefaultConnectionManager.java
@SuppressWarnings("ProhibitedExceptionCaught")
private <T> T withReadLock(ReadWriteLock lock, CheckedSupplier<T> supplier) {
    try {
        lock.readLock().lock();
        return supplier.get();
    } catch (Throwable t) {
        return ExceptionUtils.rethrow(t);
    } finally {
        lock.readLock().unlock();
    }
}
 
源代码29 项目: linstor-server   文件: StltNodeApiCallHandler.java
@Inject
StltNodeApiCallHandler(
    ErrorReporter errorReporterRef,
    @ApiContext AccessContext apiCtxRef,
    DeviceManager deviceManagerRef,
    @Named(CoreModule.RECONFIGURATION_LOCK) ReadWriteLock reconfigurationLockRef,
    @Named(CoreModule.NODES_MAP_LOCK) ReadWriteLock nodesMapLockRef,
    CoreModule.NodesMap nodesMapRef,
    NodeSatelliteFactory nodeFactoryRef,
    NodeConnectionFactory nodeConnectionFactoryRef,
    NetInterfaceFactory netInterfaceFactoryRef,
    ControllerPeerConnector controllerPeerConnectorRef,
    Provider<TransactionMgr> transMgrProviderRef
)
{
    errorReporter = errorReporterRef;
    apiCtx = apiCtxRef;
    deviceManager = deviceManagerRef;
    reconfigurationLock = reconfigurationLockRef;
    nodesMapLock = nodesMapLockRef;
    nodesMap = nodesMapRef;
    nodeFactory = nodeFactoryRef;
    nodeConnectionFactory = nodeConnectionFactoryRef;
    netInterfaceFactory = netInterfaceFactoryRef;
    controllerPeerConnector = controllerPeerConnectorRef;
    transMgrProvider = transMgrProviderRef;
}
 
源代码30 项目: hadoop   文件: LocalizedResource.java
public LocalizedResource(LocalResourceRequest rsrc, Dispatcher dispatcher) {
  this.rsrc = rsrc;
  this.dispatcher = dispatcher;
  this.ref = new LinkedList<ContainerId>();

  ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
  this.readLock = readWriteLock.readLock();
  this.writeLock = readWriteLock.writeLock();

  this.stateMachine = stateMachineFactory.make(this);
}