.class public Lcom/forum/im/utils/ThreadPoolUtils; .super Ljava/lang/Object; .source "ThreadPoolUtils.java" # static fields .field private static CORE_POOL_SIZE:I .field private static final CPU_COUNT:I .field private static KEEP_ALIVE_TIME:I .field private static MAX_POOL_SIZE:I .field private static threadFactory:Ljava/util/concurrent/ThreadFactory; .field private static threadPool:Ljava/util/concurrent/ThreadPoolExecutor; .field private static workQueue:Ljava/util/concurrent/BlockingQueue; # direct methods .method static constructor ()V .registers 9 .line 17 invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; move-result-object v0 invoke-virtual {v0}, Ljava/lang/Runtime;->availableProcessors()I move-result v0 sput v0, Lcom/forum/im/utils/ThreadPoolUtils;->CPU_COUNT:I add-int/lit8 v1, v0, 0x1 .line 18 sput v1, Lcom/forum/im/utils/ThreadPoolUtils;->CORE_POOL_SIZE:I mul-int/lit8 v0, v0, 0x2 add-int/lit8 v0, v0, 0x1 .line 20 sput v0, Lcom/forum/im/utils/ThreadPoolUtils;->MAX_POOL_SIZE:I const/16 v0, 0x2710 .line 22 sput v0, Lcom/forum/im/utils/ThreadPoolUtils;->KEEP_ALIVE_TIME:I .line 24 new-instance v0, Ljava/util/concurrent/ArrayBlockingQueue; const/16 v1, 0xa invoke-direct {v0, v1}, Ljava/util/concurrent/ArrayBlockingQueue;->(I)V sput-object v0, Lcom/forum/im/utils/ThreadPoolUtils;->workQueue:Ljava/util/concurrent/BlockingQueue; .line 32 new-instance v0, Lcom/forum/im/utils/ThreadPoolUtils$1; invoke-direct {v0}, Lcom/forum/im/utils/ThreadPoolUtils$1;->()V sput-object v0, Lcom/forum/im/utils/ThreadPoolUtils;->threadFactory:Ljava/util/concurrent/ThreadFactory; .line 42 new-instance v0, Ljava/util/concurrent/ThreadPoolExecutor; sget v2, Lcom/forum/im/utils/ThreadPoolUtils;->CORE_POOL_SIZE:I sget v3, Lcom/forum/im/utils/ThreadPoolUtils;->MAX_POOL_SIZE:I sget v1, Lcom/forum/im/utils/ThreadPoolUtils;->KEEP_ALIVE_TIME:I int-to-long v4, v1 sget-object v6, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; sget-object v7, Lcom/forum/im/utils/ThreadPoolUtils;->workQueue:Ljava/util/concurrent/BlockingQueue; sget-object v8, Lcom/forum/im/utils/ThreadPoolUtils;->threadFactory:Ljava/util/concurrent/ThreadFactory; move-object v1, v0 invoke-direct/range {v1 .. v8}, Ljava/util/concurrent/ThreadPoolExecutor;->(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V sput-object v0, Lcom/forum/im/utils/ThreadPoolUtils;->threadPool:Ljava/util/concurrent/ThreadPoolExecutor; return-void .end method .method private constructor ()V .registers 1 .line 28 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static cancel(Ljava/util/concurrent/FutureTask;)V .registers 2 const/4 v0, 0x1 .line 55 invoke-virtual {p0, v0}, Ljava/util/concurrent/FutureTask;->cancel(Z)Z return-void .end method .method public static execute(Ljava/lang/Runnable;)V .registers 2 .line 47 sget-object v0, Lcom/forum/im/utils/ThreadPoolUtils;->threadPool:Ljava/util/concurrent/ThreadPoolExecutor; invoke-virtual {v0, p0}, Ljava/util/concurrent/ThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V return-void .end method .method public static execute(Ljava/util/concurrent/FutureTask;)V .registers 2 .line 51 sget-object v0, Lcom/forum/im/utils/ThreadPoolUtils;->threadPool:Ljava/util/concurrent/ThreadPoolExecutor; invoke-virtual {v0, p0}, Ljava/util/concurrent/ThreadPoolExecutor;->execute(Ljava/lang/Runnable;)V return-void .end method