net.sf.ehcache.Ehcache.acquireWriteLockOnKey()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(7.7k)|赞(0)|评价(0)|浏览(202)

本文整理了Java中net.sf.ehcache.Ehcache.acquireWriteLockOnKey()方法的一些代码示例,展示了Ehcache.acquireWriteLockOnKey()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Ehcache.acquireWriteLockOnKey()方法的具体详情如下:
包路径:net.sf.ehcache.Ehcache
类名称:Ehcache
方法名:acquireWriteLockOnKey

Ehcache.acquireWriteLockOnKey介绍

[英]Acquires the proper write lock for a given cache key
[中]获取给定缓存密钥的正确写锁

代码示例

代码示例来源:origin: spring-projects/spring-framework

  1. @SuppressWarnings("unchecked")
  2. @Override
  3. @Nullable
  4. public <T> T get(Object key, Callable<T> valueLoader) {
  5. Element element = lookup(key);
  6. if (element != null) {
  7. return (T) element.getObjectValue();
  8. }
  9. else {
  10. this.cache.acquireWriteLockOnKey(key);
  11. try {
  12. element = lookup(key); // one more attempt with the write lock
  13. if (element != null) {
  14. return (T) element.getObjectValue();
  15. }
  16. else {
  17. return loadValue(key, valueLoader);
  18. }
  19. }
  20. finally {
  21. this.cache.releaseWriteLockOnKey(key);
  22. }
  23. }
  24. }

代码示例来源:origin: org.springframework/spring-context-support

  1. @SuppressWarnings("unchecked")
  2. @Override
  3. @Nullable
  4. public <T> T get(Object key, Callable<T> valueLoader) {
  5. Element element = lookup(key);
  6. if (element != null) {
  7. return (T) element.getObjectValue();
  8. }
  9. else {
  10. this.cache.acquireWriteLockOnKey(key);
  11. try {
  12. element = lookup(key); // one more attempt with the write lock
  13. if (element != null) {
  14. return (T) element.getObjectValue();
  15. }
  16. else {
  17. return loadValue(key, valueLoader);
  18. }
  19. }
  20. finally {
  21. this.cache.releaseWriteLockOnKey(key);
  22. }
  23. }
  24. }

代码示例来源:origin: apache/kylin

  1. @Override
  2. @SuppressWarnings("unchecked")
  3. public <T> T get(Object key, Callable<T> valueLoader) {
  4. Element element = lookup(key);
  5. if (element != null) {
  6. return (T) element.getObjectValue();
  7. } else {
  8. this.cache.acquireWriteLockOnKey(key);
  9. try {
  10. element = lookup(key); // One more attempt with the write lock
  11. if (element != null) {
  12. return (T) element.getObjectValue();
  13. } else {
  14. return loadValue(key, valueLoader);
  15. }
  16. } finally {
  17. this.cache.releaseWriteLockOnKey(key);
  18. }
  19. }
  20. }

代码示例来源:origin: net.sf.ehcache/ehcache

  1. /**
  2. * {@inheritDoc}
  3. */
  4. public void acquireWriteLockOnKey(Object key) {
  5. underlyingCache.acquireWriteLockOnKey(key);
  6. }

代码示例来源:origin: net.sf.ehcache/ehcache

  1. /**
  2. * {@inheritDoc}
  3. */
  4. public void acquireWriteLockOnKey(Object arg0) {
  5. // THIS IS GENERATED CODE -- DO NOT HAND MODIFY!
  6. Thread t = Thread.currentThread();
  7. ClassLoader prev = t.getContextClassLoader();
  8. t.setContextClassLoader(this.classLoader);
  9. try {
  10. this.cache.acquireWriteLockOnKey(arg0);
  11. } finally {
  12. t.setContextClassLoader(prev);
  13. }
  14. }

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.ehcache

  1. /**
  2. * {@inheritDoc}
  3. */
  4. public void acquireWriteLockOnKey(Object key) {
  5. underlyingCache.acquireWriteLockOnKey(key);
  6. }

代码示例来源:origin: org.sonatype.nexus.bundles/org.sonatype.nexus.bundles.ehcache

  1. /**
  2. * {@inheritDoc}
  3. */
  4. public void acquireWriteLockOnKey(Object key) {
  5. underlyingCache.acquireWriteLockOnKey(key);
  6. }

代码示例来源:origin: net.sf.ehcache.internal/ehcache-core

  1. /**
  2. * {@inheritDoc}
  3. */
  4. public void acquireWriteLockOnKey(Object key) {
  5. underlyingCache.acquireWriteLockOnKey(key);
  6. }

代码示例来源:origin: suninformation/ymate-platform-v2

  1. @Override
  2. public void writeLock(Object key) {
  3. __ehcache.acquireWriteLockOnKey(key);
  4. }

代码示例来源:origin: org.sonatype.nexus.bundles/org.sonatype.nexus.bundles.ehcache

  1. /**
  2. * {@inheritDoc}
  3. */
  4. public void acquireWriteLockOnKey(Object arg0) {
  5. // THIS IS GENERATED CODE -- DO NOT HAND MODIFY!
  6. Thread t = Thread.currentThread();
  7. ClassLoader prev = t.getContextClassLoader();
  8. t.setContextClassLoader(this.classLoader);
  9. try {
  10. this.cache.acquireWriteLockOnKey(arg0);
  11. } finally {
  12. t.setContextClassLoader(prev);
  13. }
  14. }

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.ehcache

  1. /**
  2. * {@inheritDoc}
  3. */
  4. public void acquireWriteLockOnKey(Object arg0) {
  5. // THIS IS GENERATED CODE -- DO NOT HAND MODIFY!
  6. Thread t = Thread.currentThread();
  7. ClassLoader prev = t.getContextClassLoader();
  8. t.setContextClassLoader(this.classLoader);
  9. try {
  10. this.cache.acquireWriteLockOnKey(arg0);
  11. } finally {
  12. t.setContextClassLoader(prev);
  13. }
  14. }

代码示例来源:origin: net.sf.ehcache.internal/ehcache-core

  1. /**
  2. * {@inheritDoc}
  3. */
  4. public void acquireWriteLockOnKey(Object arg0) {
  5. // THIS IS GENERATED CODE -- DO NOT HAND MODIFY!
  6. Thread t = Thread.currentThread();
  7. ClassLoader prev = t.getContextClassLoader();
  8. t.setContextClassLoader(this.classLoader);
  9. try {
  10. this.cache.acquireWriteLockOnKey(arg0);
  11. } finally {
  12. t.setContextClassLoader(prev);
  13. }
  14. }

代码示例来源:origin: ehcache/ehcache-jcache

  1. @Override
  2. public V getAndRemove(final K key) {
  3. checkNotClosed();
  4. if(key == null) throw new NullPointerException();
  5. ehcache.acquireWriteLockOnKey(key);
  6. try {
  7. Element previousElement;
  8. previousElement = ehcache.get(key);
  9. removeAndWriteIfNeeded(key);
  10. return previousElement == null ? null : (V) previousElement.getObjectValue();
  11. } finally {
  12. ehcache.releaseWriteLockOnKey(key);
  13. }
  14. }

代码示例来源:origin: org.ehcache/jcache

  1. @Override
  2. public V getAndRemove(final K key) {
  3. checkNotClosed();
  4. if(key == null) throw new NullPointerException();
  5. ehcache.acquireWriteLockOnKey(key);
  6. try {
  7. Element previousElement;
  8. previousElement = ehcache.get(key);
  9. removeAndWriteIfNeeded(key);
  10. return previousElement == null ? null : (V) previousElement.getObjectValue();
  11. } finally {
  12. ehcache.releaseWriteLockOnKey(key);
  13. }
  14. }

代码示例来源:origin: apache/servicemix-bundles

  1. @SuppressWarnings("unchecked")
  2. @Override
  3. public <T> T get(Object key, Callable<T> valueLoader) {
  4. Element element = lookup(key);
  5. if (element != null) {
  6. return (T) element.getObjectValue();
  7. }
  8. else {
  9. this.cache.acquireWriteLockOnKey(key);
  10. try {
  11. element = lookup(key); // one more attempt with the write lock
  12. if (element != null) {
  13. return (T) element.getObjectValue();
  14. }
  15. else {
  16. return loadValue(key, valueLoader);
  17. }
  18. }
  19. finally {
  20. this.cache.releaseWriteLockOnKey(key);
  21. }
  22. }
  23. }

代码示例来源:origin: org.ehcache/jcache

  1. @Override
  2. public void remove() {
  3. if(current == null) {
  4. throw new IllegalStateException();
  5. }
  6. jCache.ehcache.acquireWriteLockOnKey(current.getKey());
  7. try {
  8. final Element element = jCache.ehcache.getQuiet(current.getKey());
  9. if(element != null && element.getObjectValue().equals(current.getValue())) {
  10. jCache.removeAndWriteIfNeeded(current.getKey());
  11. }
  12. } finally {
  13. jCache.ehcache.releaseWriteLockOnKey(current.getKey());
  14. }
  15. }

代码示例来源:origin: ehcache/ehcache-jcache

  1. @Override
  2. public void remove() {
  3. if(current == null) {
  4. throw new IllegalStateException();
  5. }
  6. jCache.ehcache.acquireWriteLockOnKey(current.getKey());
  7. try {
  8. final Element element = jCache.ehcache.getQuiet(current.getKey());
  9. if(element != null && element.getObjectValue().equals(current.getValue())) {
  10. jCache.removeAndWriteIfNeeded(current.getKey());
  11. }
  12. } finally {
  13. jCache.ehcache.releaseWriteLockOnKey(current.getKey());
  14. }
  15. }

代码示例来源:origin: org.ehcache/jcache

  1. @Override
  2. public boolean putIfAbsent(final K key, final V value) {
  3. checkNotClosed();
  4. if(key == null) throw new NullPointerException();
  5. if(value == null) throw new NullPointerException();
  6. ehcache.acquireWriteLockOnKey(key);
  7. try {
  8. if (!ehcache.isKeyInCache(key)) {
  9. final Element element = new Element(key, value);
  10. final Duration expiryForCreation;
  11. expiryForCreation = cfg.getExpiryPolicy().getExpiryForCreation();
  12. if(setTimeTo(cfg.overrideDefaultExpiry(), expiryForCreation, element)) {
  13. putAndWriteIfNeeded(element);
  14. }
  15. return true;
  16. }
  17. } finally {
  18. ehcache.releaseWriteLockOnKey(key);
  19. }
  20. return false;
  21. }

代码示例来源:origin: org.ehcache/jcache

  1. void putWithoutWriter(final K key, final V value) {
  2. checkNotClosed();
  3. if(key == null) throw new NullPointerException();
  4. if(value == null) throw new NullPointerException();
  5. ehcache.acquireWriteLockOnKey(key);
  6. try {
  7. final Duration expiry;
  8. final boolean inCache = ehcache.isKeyInCache(key);
  9. if(inCache) {
  10. expiry = cfg.getExpiryPolicy().getExpiryForUpdate();
  11. } else {
  12. expiry = cfg.getExpiryPolicy().getExpiryForCreation();
  13. }
  14. final Element element = new Element(key, value);
  15. if(setTimeTo(cfg.overrideDefaultExpiry(), expiry, element)) {
  16. ehcache.put(element);
  17. } else if(inCache) {
  18. ehcache.remove(key);
  19. }
  20. } finally {
  21. ehcache.releaseWriteLockOnKey(key);
  22. }
  23. }

代码示例来源:origin: ehcache/ehcache-jcache

  1. private boolean removeAndWriteIfNeeded(final K key) {
  2. if (cfg.isWriteThrough()) {
  3. ehcache.acquireWriteLockOnKey(key);
  4. final Element previous = ehcache.getQuiet(key);
  5. try {
  6. return ehcache.removeWithWriter(key);
  7. } catch (RuntimeException e) {
  8. if(previous != null) {
  9. ehcache.putQuiet(previous);
  10. }
  11. throw new CacheWriterException(e);
  12. }
  13. } else {
  14. if (ehcache.isKeyInCache(key)) {
  15. return ehcache.remove(key);
  16. }
  17. return false;
  18. }
  19. }

相关文章

Ehcache类方法