当前位置: 首页>>代码示例>>Java>>正文


Java ThreadDeathWatcher类代码示例

本文整理汇总了Java中io.netty.util.ThreadDeathWatcher的典型用法代码示例。如果您正苦于以下问题:Java ThreadDeathWatcher类的具体用法?Java ThreadDeathWatcher怎么用?Java ThreadDeathWatcher使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ThreadDeathWatcher类属于io.netty.util包,在下文中一共展示了ThreadDeathWatcher类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: shutdown

import io.netty.util.ThreadDeathWatcher; //导入依赖的package包/类
@Override
public Observable<Boolean> shutdown() {
    return Observable.create(new Observable.OnSubscribe<Boolean>() {
        @Override
        public void call(final Subscriber<? super Boolean> subscriber) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        isReallyShutdown = ThreadDeathWatcher.awaitInactivity(3, TimeUnit.SECONDS);
                        if (!subscriber.isUnsubscribed()) {
                            subscriber.onNext(isReallyShutdown);
                            subscriber.onCompleted();
                        }
                    } catch (Throwable e) {
                        if (!subscriber.isUnsubscribed()) {
                            subscriber.onError(e);
                        }
                    }
                }
            }).start();
        }
    });
}
 
开发者ID:couchbase,项目名称:couchbase-jvm-core,代码行数:25,代码来源:NettyShutdownHook.java

示例2: watchForDefaultEventLoopThread

import io.netty.util.ThreadDeathWatcher; //导入依赖的package包/类
private static Thread watchForDefaultEventLoopThread(final Thread thread, final CountDownLatch latch)
{
  ThreadDeathWatcher.watch(thread, new Runnable()
  {
    @Override
    public void run()
    {
      latch.countDown();
    }
  });
  return thread;
}
 
开发者ID:DataTorrent,项目名称:Netlet,代码行数:13,代码来源:AbstractClientTest.java

示例3: PoolThreadCache

import io.netty.util.ThreadDeathWatcher; //导入依赖的package包/类
PoolThreadCache(PoolArena<byte[]> heapArena, PoolArena<ByteBuffer> directArena,
                int tinyCacheSize, int smallCacheSize, int normalCacheSize,
                int maxCachedBufferCapacity, int freeSweepAllocationThreshold) {
    if (maxCachedBufferCapacity < 0) {
        throw new IllegalArgumentException("maxCachedBufferCapacity: "
                + maxCachedBufferCapacity + " (expected: >= 0)");
    }
    if (freeSweepAllocationThreshold < 1) {
        throw new IllegalArgumentException("freeSweepAllocationThreshold: "
                + maxCachedBufferCapacity + " (expected: > 0)");
    }
    this.freeSweepAllocationThreshold = freeSweepAllocationThreshold;
    this.heapArena = heapArena;
    this.directArena = directArena;
    if (directArena != null) {
        tinySubPageDirectCaches = createSubPageCaches(tinyCacheSize, PoolArena.numTinySubpagePools);
        smallSubPageDirectCaches = createSubPageCaches(smallCacheSize, directArena.numSmallSubpagePools);

        numShiftsNormalDirect = log2(directArena.pageSize);
        normalDirectCaches = createNormalCaches(
                normalCacheSize, maxCachedBufferCapacity, directArena);
    } else {
        // No directArea is configured so just null out all caches
        tinySubPageDirectCaches = null;
        smallSubPageDirectCaches = null;
        normalDirectCaches = null;
        numShiftsNormalDirect = -1;
    }
    if (heapArena != null) {
        // Create the caches for the heap allocations
        tinySubPageHeapCaches = createSubPageCaches(tinyCacheSize, PoolArena.numTinySubpagePools);
        smallSubPageHeapCaches = createSubPageCaches(smallCacheSize, heapArena.numSmallSubpagePools);

        numShiftsNormalHeap = log2(heapArena.pageSize);
        normalHeapCaches = createNormalCaches(
                normalCacheSize, maxCachedBufferCapacity, heapArena);
    } else {
        // No heapArea is configured so just null out all caches
        tinySubPageHeapCaches = null;
        smallSubPageHeapCaches = null;
        normalHeapCaches = null;
        numShiftsNormalHeap = -1;
    }

    // The thread-local cache will keep a list of pooled buffers which must be returned to
    // the pool when the thread is not alive anymore.
    ThreadDeathWatcher.watch(thread, freeTask);
}
 
开发者ID:wuyinxian124,项目名称:netty4.0.27Learn,代码行数:49,代码来源:PoolThreadCache.java

示例4: free

import io.netty.util.ThreadDeathWatcher; //导入依赖的package包/类
/**
 *  Should be called if the Thread that uses this cache is about to exist to release resources out of the cache
 */
void free() {
    ThreadDeathWatcher.unwatch(thread, freeTask);
    free0();
}
 
开发者ID:wuyinxian124,项目名称:netty4.0.27Learn,代码行数:8,代码来源:PoolThreadCache.java


注:本文中的io.netty.util.ThreadDeathWatcher类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。