ThreadUtils.smali

.class public final Lcom/blankj/utilcode/util/ThreadUtils;
.super Ljava/lang/Object;
.source "ThreadUtils.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;,
        Lcom/blankj/utilcode/util/ThreadUtils$Task;,
        Lcom/blankj/utilcode/util/ThreadUtils$SimpleTask;,
        Lcom/blankj/utilcode/util/ThreadUtils$UtilsThreadFactory;,
        Lcom/blankj/utilcode/util/ThreadUtils$LinkedBlockingQueue4Util;,
        Lcom/blankj/utilcode/util/ThreadUtils$ThreadPoolExecutor4Util;
    }
.end annotation


# static fields
.field private static final CPU_COUNT:I

.field private static final TASK_TASKINFO_MAP:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task;",
            "Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;",
            ">;"
        }
    .end annotation
.end field

.field private static final TIMER:Ljava/util/Timer;

.field private static final TYPE_CACHED:B = -0x2t

.field private static final TYPE_CPU:B = -0x8t

.field private static final TYPE_IO:B = -0x4t

.field private static final TYPE_PRIORITY_POOLS:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Ljava/lang/Integer;",
            "Ljava/util/Map<",
            "Ljava/lang/Integer;",
            "Ljava/util/concurrent/ExecutorService;",
            ">;>;"
        }
    .end annotation
.end field

.field private static final TYPE_SINGLE:B = -0x1t

.field private static sDeliver:Ljava/util/concurrent/Executor;


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .line 36
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    sput-object v0, Lcom/blankj/utilcode/util/ThreadUtils;->TYPE_PRIORITY_POOLS:Ljava/util/Map;

    .line 38
    new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;

    invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V

    sput-object v0, Lcom/blankj/utilcode/util/ThreadUtils;->TASK_TASKINFO_MAP:Ljava/util/Map;

    .line 40
    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/blankj/utilcode/util/ThreadUtils;->CPU_COUNT:I

    .line 41
    new-instance v0, Ljava/util/Timer;

    invoke-direct {v0}, Ljava/util/Timer;-><init>()V

    sput-object v0, Lcom/blankj/utilcode/util/ThreadUtils;->TIMER:Ljava/util/Timer;

    return-void
.end method

.method public constructor <init>()V
    .registers 1

    .line 34
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method static synthetic access$500()I
    .registers 1

    .line 34
    sget v0, Lcom/blankj/utilcode/util/ThreadUtils;->CPU_COUNT:I

    return v0
.end method

.method static synthetic access$800()Ljava/util/concurrent/Executor;
    .registers 1

    .line 34
    invoke-static {}, Lcom/blankj/utilcode/util/ThreadUtils;->getGlobalDeliver()Ljava/util/concurrent/Executor;

    move-result-object v0

    return-object v0
.end method

.method static synthetic access$900()Ljava/util/Map;
    .registers 1

    .line 34
    sget-object v0, Lcom/blankj/utilcode/util/ThreadUtils;->TASK_TASKINFO_MAP:Ljava/util/Map;

    return-object v0
.end method

.method public static cancel(Lcom/blankj/utilcode/util/ThreadUtils$Task;)V
    .registers 1
    .param p0, "task"    # Lcom/blankj/utilcode/util/ThreadUtils$Task;

    .line 845
    if-nez p0, :cond_3

    return-void

    .line 846
    :cond_3
    invoke-virtual {p0}, Lcom/blankj/utilcode/util/ThreadUtils$Task;->cancel()V

    .line 847
    return-void
.end method

.method public static cancel(Ljava/util/List;)V
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/List<",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task;",
            ">;)V"
        }
    .end annotation

    .line 868
    .local p0, "tasks":Ljava/util/List;, "Ljava/util/List<Lcom/blankj/utilcode/util/ThreadUtils$Task;>;"
    if-eqz p0, :cond_21

    invoke-interface {p0}, Ljava/util/List;->size()I

    move-result v0

    if-nez v0, :cond_9

    goto :goto_21

    .line 869
    :cond_9
    invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_d
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_20

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/blankj/utilcode/util/ThreadUtils$Task;

    .line 870
    .local v1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;
    if-nez v1, :cond_1c

    goto :goto_d

    .line 871
    :cond_1c
    invoke-virtual {v1}, Lcom/blankj/utilcode/util/ThreadUtils$Task;->cancel()V

    .line 872
    .end local v1    # "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;
    goto :goto_d

    .line 873
    :cond_20
    return-void

    .line 868
    :cond_21
    :goto_21
    return-void
.end method

.method public static cancel(Ljava/util/concurrent/ExecutorService;)V
    .registers 4
    .param p0, "executorService"    # Ljava/util/concurrent/ExecutorService;

    .line 881
    instance-of v0, p0, Lcom/blankj/utilcode/util/ThreadUtils$ThreadPoolExecutor4Util;

    if-eqz v0, :cond_31

    .line 882
    sget-object v0, Lcom/blankj/utilcode/util/ThreadUtils;->TASK_TASKINFO_MAP:Ljava/util/Map;

    invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set;

    move-result-object v0

    invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_e
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_30

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/util/Map$Entry;

    .line 883
    .local v1, "taskTaskInfoEntry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<Lcom/blankj/utilcode/util/ThreadUtils$Task;Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;>;"
    invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;

    # getter for: Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;->mService:Ljava/util/concurrent/ExecutorService;
    invoke-static {v2}, Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;->access$000(Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;)Ljava/util/concurrent/ExecutorService;

    move-result-object v2

    if-ne v2, p0, :cond_2f

    .line 884
    invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/blankj/utilcode/util/ThreadUtils$Task;

    invoke-static {v2}, Lcom/blankj/utilcode/util/ThreadUtils;->cancel(Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 886
    .end local v1    # "taskTaskInfoEntry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<Lcom/blankj/utilcode/util/ThreadUtils$Task;Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;>;"
    :cond_2f
    goto :goto_e

    :cond_30
    goto :goto_38

    .line 888
    :cond_31
    const-string v0, "LogUtils"

    const-string v1, "The executorService is not ThreadUtils\'s pool."

    invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 890
    :goto_38
    return-void
.end method

.method public static varargs cancel([Lcom/blankj/utilcode/util/ThreadUtils$Task;)V
    .registers 4
    .param p0, "tasks"    # [Lcom/blankj/utilcode/util/ThreadUtils$Task;

    .line 855
    if-eqz p0, :cond_16

    array-length v0, p0

    if-nez v0, :cond_6

    goto :goto_16

    .line 856
    :cond_6
    array-length v0, p0

    const/4 v1, 0x0

    :goto_8
    if-ge v1, v0, :cond_15

    aget-object v2, p0, v1

    .line 857
    .local v2, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;
    if-nez v2, :cond_f

    goto :goto_12

    .line 858
    :cond_f
    invoke-virtual {v2}, Lcom/blankj/utilcode/util/ThreadUtils$Task;->cancel()V

    .line 856
    .end local v2    # "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;
    :goto_12
    add-int/lit8 v1, v1, 0x1

    goto :goto_8

    .line 860
    :cond_15
    return-void

    .line 855
    :cond_16
    :goto_16
    return-void
.end method

.method private static execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V
    .registers 9
    .param p0, "pool"    # Ljava/util/concurrent/ExecutorService;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/concurrent/ExecutorService;",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;)V"
        }
    .end annotation

    .line 902
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const-wide/16 v2, 0x0

    const-wide/16 v4, 0x0

    const/4 v6, 0x0

    move-object v0, p0

    move-object v1, p1

    invoke-static/range {v0 .. v6}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 903
    return-void
.end method

.method private static execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V
    .registers 15
    .param p0, "pool"    # Ljava/util/concurrent/ExecutorService;
    .param p2, "delay"    # J
    .param p4, "period"    # J
    .param p6, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/concurrent/ExecutorService;",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 923
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    sget-object v0, Lcom/blankj/utilcode/util/ThreadUtils;->TASK_TASKINFO_MAP:Ljava/util/Map;

    monitor-enter v0

    .line 924
    :try_start_3
    sget-object v1, Lcom/blankj/utilcode/util/ThreadUtils;->TASK_TASKINFO_MAP:Ljava/util/Map;

    invoke-interface {v1, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    if-eqz v1, :cond_14

    .line 925
    const-string v1, "ThreadUtils"

    const-string v2, "Task can only be executed once."

    invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 926
    monitor-exit v0

    return-void

    .line 928
    :cond_14
    new-instance v1, Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;

    const/4 v2, 0x0

    invoke-direct {v1, p0, v2}, Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;-><init>(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$1;)V

    .line 929
    .local v1, "taskInfo":Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;
    sget-object v2, Lcom/blankj/utilcode/util/ThreadUtils;->TASK_TASKINFO_MAP:Ljava/util/Map;

    invoke-interface {v2, p1, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 930
    monitor-exit v0
    :try_end_20
    .catchall {:try_start_3 .. :try_end_20} :catchall_5b

    .line 931
    const-wide/16 v2, 0x0

    cmp-long v0, p4, v2

    if-nez v0, :cond_40

    .line 932
    cmp-long v0, p2, v2

    if-nez v0, :cond_2e

    .line 933
    invoke-interface {p0, p1}, Ljava/util/concurrent/ExecutorService;->execute(Ljava/lang/Runnable;)V

    goto :goto_5a

    .line 935
    :cond_2e
    new-instance v0, Lcom/blankj/utilcode/util/ThreadUtils$1;

    invoke-direct {v0, p0, p1}, Lcom/blankj/utilcode/util/ThreadUtils$1;-><init>(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 941
    .local v0, "timerTask":Ljava/util/TimerTask;
    # setter for: Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;->mTimerTask:Ljava/util/TimerTask;
    invoke-static {v1, v0}, Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;->access$202(Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;Ljava/util/TimerTask;)Ljava/util/TimerTask;

    .line 942
    sget-object v2, Lcom/blankj/utilcode/util/ThreadUtils;->TIMER:Ljava/util/Timer;

    invoke-virtual {p6, p2, p3}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J

    move-result-wide v3

    invoke-virtual {v2, v0, v3, v4}, Ljava/util/Timer;->schedule(Ljava/util/TimerTask;J)V

    .line 943
    .end local v0    # "timerTask":Ljava/util/TimerTask;
    goto :goto_5a

    .line 945
    :cond_40
    const/4 v0, 0x1

    # invokes: Lcom/blankj/utilcode/util/ThreadUtils$Task;->setSchedule(Z)V
    invoke-static {p1, v0}, Lcom/blankj/utilcode/util/ThreadUtils$Task;->access$300(Lcom/blankj/utilcode/util/ThreadUtils$Task;Z)V

    .line 946
    new-instance v0, Lcom/blankj/utilcode/util/ThreadUtils$2;

    invoke-direct {v0, p0, p1}, Lcom/blankj/utilcode/util/ThreadUtils$2;-><init>(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 952
    .restart local v0    # "timerTask":Ljava/util/TimerTask;
    # setter for: Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;->mTimerTask:Ljava/util/TimerTask;
    invoke-static {v1, v0}, Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;->access$202(Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;Ljava/util/TimerTask;)Ljava/util/TimerTask;

    .line 953
    sget-object v2, Lcom/blankj/utilcode/util/ThreadUtils;->TIMER:Ljava/util/Timer;

    invoke-virtual {p6, p2, p3}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J

    move-result-wide v4

    invoke-virtual {p6, p4, p5}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J

    move-result-wide v6

    move-object v3, v0

    invoke-virtual/range {v2 .. v7}, Ljava/util/Timer;->scheduleAtFixedRate(Ljava/util/TimerTask;JJ)V

    .line 955
    .end local v0    # "timerTask":Ljava/util/TimerTask;
    :goto_5a
    return-void

    .line 930
    .end local v1    # "taskInfo":Lcom/blankj/utilcode/util/ThreadUtils$TaskInfo;
    :catchall_5b
    move-exception v1

    :try_start_5c
    monitor-exit v0
    :try_end_5d
    .catchall {:try_start_5c .. :try_end_5d} :catchall_5b

    throw v1
.end method

.method private static executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V
    .registers 7
    .param p0, "pool"    # Ljava/util/concurrent/ExecutorService;
    .param p2, "delay"    # J
    .param p4, "period"    # J
    .param p6, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/concurrent/ExecutorService;",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 917
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static/range {p0 .. p6}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 918
    return-void
.end method

.method public static executeByCached(Lcom/blankj/utilcode/util/ThreadUtils$Task;)V
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;)V"
        }
    .end annotation

    .line 431
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x2

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 432
    return-void
.end method

.method public static executeByCached(Lcom/blankj/utilcode/util/ThreadUtils$Task;I)V
    .registers 3
    .param p1, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;I)V"
        }
    .end annotation

    .line 443
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x2

    invoke-static {v0, p1}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 444
    return-void
.end method

.method public static executeByCachedAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V
    .registers 14
    .param p1, "initialDelay"    # J
    .param p3, "period"    # J
    .param p5, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 519
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x2

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    move-object v2, p0

    move-wide v3, p1

    move-wide v5, p3

    move-object v7, p5

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 520
    return-void
.end method

.method public static executeByCachedAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;I)V
    .registers 15
    .param p1, "initialDelay"    # J
    .param p3, "period"    # J
    .param p5, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p6, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 537
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    nop

    .line 538
    const/4 v0, -0x2

    invoke-static {v0, p6}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    .line 537
    move-object v2, p0

    move-wide v3, p1

    move-wide v5, p3

    move-object v7, p5

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 540
    return-void
.end method

.method public static executeByCachedAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 12
    .param p1, "period"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 487
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x2

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    const-wide/16 v3, 0x0

    move-object v2, p0

    move-wide v5, p1

    move-object v7, p3

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 488
    return-void
.end method

.method public static executeByCachedAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;I)V
    .registers 13
    .param p1, "period"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p4, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 503
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x2

    invoke-static {v0, p4}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    const-wide/16 v3, 0x0

    move-object v2, p0

    move-wide v5, p1

    move-object v7, p3

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 504
    return-void
.end method

.method public static executeByCachedWithDelay(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 5
    .param p1, "delay"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 457
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x2

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ThreadUtils;->executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V

    .line 458
    return-void
.end method

.method public static executeByCachedWithDelay(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;I)V
    .registers 6
    .param p1, "delay"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p4, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 473
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x2

    invoke-static {v0, p4}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ThreadUtils;->executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V

    .line 474
    return-void
.end method

.method public static executeByCpu(Lcom/blankj/utilcode/util/ThreadUtils$Task;)V
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;)V"
        }
    .end annotation

    .line 667
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x8

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 668
    return-void
.end method

.method public static executeByCpu(Lcom/blankj/utilcode/util/ThreadUtils$Task;I)V
    .registers 3
    .param p1, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;I)V"
        }
    .end annotation

    .line 679
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x8

    invoke-static {v0, p1}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 680
    return-void
.end method

.method public static executeByCpuAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V
    .registers 14
    .param p1, "initialDelay"    # J
    .param p3, "period"    # J
    .param p5, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 755
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x8

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    move-object v2, p0

    move-wide v3, p1

    move-wide v5, p3

    move-object v7, p5

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 756
    return-void
.end method

.method public static executeByCpuAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;I)V
    .registers 15
    .param p1, "initialDelay"    # J
    .param p3, "period"    # J
    .param p5, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p6, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 773
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    nop

    .line 774
    const/4 v0, -0x8

    invoke-static {v0, p6}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    .line 773
    move-object v2, p0

    move-wide v3, p1

    move-wide v5, p3

    move-object v7, p5

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 776
    return-void
.end method

.method public static executeByCpuAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 12
    .param p1, "period"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 723
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x8

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    const-wide/16 v3, 0x0

    move-object v2, p0

    move-wide v5, p1

    move-object v7, p3

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 724
    return-void
.end method

.method public static executeByCpuAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;I)V
    .registers 13
    .param p1, "period"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p4, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 739
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x8

    invoke-static {v0, p4}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    const-wide/16 v3, 0x0

    move-object v2, p0

    move-wide v5, p1

    move-object v7, p3

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 740
    return-void
.end method

.method public static executeByCpuWithDelay(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 5
    .param p1, "delay"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 693
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x8

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ThreadUtils;->executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V

    .line 694
    return-void
.end method

.method public static executeByCpuWithDelay(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;I)V
    .registers 6
    .param p1, "delay"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p4, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 709
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x8

    invoke-static {v0, p4}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ThreadUtils;->executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V

    .line 710
    return-void
.end method

.method public static executeByCustom(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V
    .registers 2
    .param p0, "pool"    # Ljava/util/concurrent/ExecutorService;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/concurrent/ExecutorService;",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;)V"
        }
    .end annotation

    .line 786
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static {p0, p1}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 787
    return-void
.end method

.method public static executeByCustomAtFixRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V
    .registers 7
    .param p0, "pool"    # Ljava/util/concurrent/ExecutorService;
    .param p2, "initialDelay"    # J
    .param p4, "period"    # J
    .param p6, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/concurrent/ExecutorService;",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 836
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static/range {p0 .. p6}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 837
    return-void
.end method

.method public static executeByCustomAtFixRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 12
    .param p0, "pool"    # Ljava/util/concurrent/ExecutorService;
    .param p2, "period"    # J
    .param p4, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/concurrent/ExecutorService;",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 818
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const-wide/16 v2, 0x0

    move-object v0, p0

    move-object v1, p1

    move-wide v4, p2

    move-object v6, p4

    invoke-static/range {v0 .. v6}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 819
    return-void
.end method

.method public static executeByCustomWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 5
    .param p0, "pool"    # Ljava/util/concurrent/ExecutorService;
    .param p2, "delay"    # J
    .param p4, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/concurrent/ExecutorService;",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 802
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static {p0, p1, p2, p3, p4}, Lcom/blankj/utilcode/util/ThreadUtils;->executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V

    .line 803
    return-void
.end method

.method public static executeByFixed(ILcom/blankj/utilcode/util/ThreadUtils$Task;)V
    .registers 3
    .param p0, "size"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(I",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;)V"
        }
    .end annotation

    .line 183
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static {p0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p1}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 184
    return-void
.end method

.method public static executeByFixed(ILcom/blankj/utilcode/util/ThreadUtils$Task;I)V
    .registers 4
    .param p0, "size"    # I
    .param p2, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(I",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;I)V"
        }
    .end annotation

    .line 197
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static {p0, p2}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p1}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 198
    return-void
.end method

.method public static executeByFixedAtFixRate(ILcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V
    .registers 14
    .param p0, "size"    # I
    .param p2, "initialDelay"    # J
    .param p4, "period"    # J
    .param p6, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(I",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 283
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static {p0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    move-object v1, p1

    move-wide v2, p2

    move-wide v4, p4

    move-object v6, p6

    invoke-static/range {v0 .. v6}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 284
    return-void
.end method

.method public static executeByFixedAtFixRate(ILcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;I)V
    .registers 15
    .param p0, "size"    # I
    .param p2, "initialDelay"    # J
    .param p4, "period"    # J
    .param p6, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p7, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(I",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 303
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static {p0, p7}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    move-object v1, p1

    move-wide v2, p2

    move-wide v4, p4

    move-object v6, p6

    invoke-static/range {v0 .. v6}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 304
    return-void
.end method

.method public static executeByFixedAtFixRate(ILcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 12
    .param p0, "size"    # I
    .param p2, "period"    # J
    .param p4, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(I",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 247
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static {p0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    const-wide/16 v2, 0x0

    move-object v1, p1

    move-wide v4, p2

    move-object v6, p4

    invoke-static/range {v0 .. v6}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 248
    return-void
.end method

.method public static executeByFixedAtFixRate(ILcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;I)V
    .registers 13
    .param p0, "size"    # I
    .param p2, "period"    # J
    .param p4, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p5, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(I",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 265
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static {p0, p5}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    const-wide/16 v2, 0x0

    move-object v1, p1

    move-wide v4, p2

    move-object v6, p4

    invoke-static/range {v0 .. v6}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 266
    return-void
.end method

.method public static executeByFixedWithDelay(ILcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 6
    .param p0, "size"    # I
    .param p2, "delay"    # J
    .param p4, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(I",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 213
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static {p0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p1, p2, p3, p4}, Lcom/blankj/utilcode/util/ThreadUtils;->executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V

    .line 214
    return-void
.end method

.method public static executeByFixedWithDelay(ILcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;I)V
    .registers 7
    .param p0, "size"    # I
    .param p2, "delay"    # J
    .param p4, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p5, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(I",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 231
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    invoke-static {p0, p5}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p1, p2, p3, p4}, Lcom/blankj/utilcode/util/ThreadUtils;->executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V

    .line 232
    return-void
.end method

.method public static executeByIo(Lcom/blankj/utilcode/util/ThreadUtils$Task;)V
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;)V"
        }
    .end annotation

    .line 549
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x4

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 550
    return-void
.end method

.method public static executeByIo(Lcom/blankj/utilcode/util/ThreadUtils$Task;I)V
    .registers 3
    .param p1, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;I)V"
        }
    .end annotation

    .line 561
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x4

    invoke-static {v0, p1}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 562
    return-void
.end method

.method public static executeByIoAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V
    .registers 14
    .param p1, "initialDelay"    # J
    .param p3, "period"    # J
    .param p5, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 637
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x4

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    move-object v2, p0

    move-wide v3, p1

    move-wide v5, p3

    move-object v7, p5

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 638
    return-void
.end method

.method public static executeByIoAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;I)V
    .registers 15
    .param p1, "initialDelay"    # J
    .param p3, "period"    # J
    .param p5, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p6, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 655
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    nop

    .line 656
    const/4 v0, -0x4

    invoke-static {v0, p6}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    .line 655
    move-object v2, p0

    move-wide v3, p1

    move-wide v5, p3

    move-object v7, p5

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 658
    return-void
.end method

.method public static executeByIoAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 12
    .param p1, "period"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 605
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x4

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    const-wide/16 v3, 0x0

    move-object v2, p0

    move-wide v5, p1

    move-object v7, p3

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 606
    return-void
.end method

.method public static executeByIoAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;I)V
    .registers 13
    .param p1, "period"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p4, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 621
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x4

    invoke-static {v0, p4}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    const-wide/16 v3, 0x0

    move-object v2, p0

    move-wide v5, p1

    move-object v7, p3

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 622
    return-void
.end method

.method public static executeByIoWithDelay(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 5
    .param p1, "delay"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 575
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x4

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ThreadUtils;->executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V

    .line 576
    return-void
.end method

.method public static executeByIoWithDelay(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;I)V
    .registers 6
    .param p1, "delay"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p4, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 591
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x4

    invoke-static {v0, p4}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ThreadUtils;->executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V

    .line 592
    return-void
.end method

.method public static executeBySingle(Lcom/blankj/utilcode/util/ThreadUtils$Task;)V
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;)V"
        }
    .end annotation

    .line 313
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x1

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 314
    return-void
.end method

.method public static executeBySingle(Lcom/blankj/utilcode/util/ThreadUtils$Task;I)V
    .registers 3
    .param p1, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;I)V"
        }
    .end annotation

    .line 325
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x1

    invoke-static {v0, p1}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;)V

    .line 326
    return-void
.end method

.method public static executeBySingleAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V
    .registers 14
    .param p1, "initialDelay"    # J
    .param p3, "period"    # J
    .param p5, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 401
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x1

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    move-object v2, p0

    move-wide v3, p1

    move-wide v5, p3

    move-object v7, p5

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 402
    return-void
.end method

.method public static executeBySingleAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;I)V
    .registers 15
    .param p1, "initialDelay"    # J
    .param p3, "period"    # J
    .param p5, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p6, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;JJ",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 419
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    nop

    .line 420
    const/4 v0, -0x1

    invoke-static {v0, p6}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    .line 419
    move-object v2, p0

    move-wide v3, p1

    move-wide v5, p3

    move-object v7, p5

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 422
    return-void
.end method

.method public static executeBySingleAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 12
    .param p1, "period"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 369
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x1

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    const-wide/16 v3, 0x0

    move-object v2, p0

    move-wide v5, p1

    move-object v7, p3

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 370
    return-void
.end method

.method public static executeBySingleAtFixRate(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;I)V
    .registers 13
    .param p1, "period"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p4, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 385
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x1

    invoke-static {v0, p4}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v1

    const-wide/16 v3, 0x0

    move-object v2, p0

    move-wide v5, p1

    move-object v7, p3

    invoke-static/range {v1 .. v7}, Lcom/blankj/utilcode/util/ThreadUtils;->executeAtFixedRate(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 386
    return-void
.end method

.method public static executeBySingleWithDelay(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 5
    .param p1, "delay"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 339
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x1

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ThreadUtils;->executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V

    .line 340
    return-void
.end method

.method public static executeBySingleWithDelay(Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;I)V
    .registers 6
    .param p1, "delay"    # J
    .param p3, "unit"    # Ljava/util/concurrent/TimeUnit;
    .param p4, "priority"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            "I)V"
        }
    .end annotation

    .line 355
    .local p0, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const/4 v0, -0x1

    invoke-static {v0, p4}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    invoke-static {v0, p0, p1, p2, p3}, Lcom/blankj/utilcode/util/ThreadUtils;->executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V

    .line 356
    return-void
.end method

.method private static executeWithDelay(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JLjava/util/concurrent/TimeUnit;)V
    .registers 12
    .param p0, "pool"    # Ljava/util/concurrent/ExecutorService;
    .param p2, "delay"    # J
    .param p4, "unit"    # Ljava/util/concurrent/TimeUnit;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Ljava/util/concurrent/ExecutorService;",
            "Lcom/blankj/utilcode/util/ThreadUtils$Task<",
            "TT;>;J",
            "Ljava/util/concurrent/TimeUnit;",
            ")V"
        }
    .end annotation

    .line 909
    .local p1, "task":Lcom/blankj/utilcode/util/ThreadUtils$Task;, "Lcom/blankj/utilcode/util/ThreadUtils$Task<TT;>;"
    const-wide/16 v4, 0x0

    move-object v0, p0

    move-object v1, p1

    move-wide v2, p2

    move-object v6, p4

    invoke-static/range {v0 .. v6}, Lcom/blankj/utilcode/util/ThreadUtils;->execute(Ljava/util/concurrent/ExecutorService;Lcom/blankj/utilcode/util/ThreadUtils$Task;JJLjava/util/concurrent/TimeUnit;)V

    .line 910
    return-void
.end method

.method public static getCachedPool()Ljava/util/concurrent/ExecutorService;
    .registers 1

    .line 116
    const/4 v0, -0x2

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    return-object v0
.end method

.method public static getCachedPool(I)Ljava/util/concurrent/ExecutorService;
    .registers 2
    .param p0, "priority"    # I

    .line 128
    const/4 v0, -0x2

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    return-object v0
.end method

.method public static getCpuPool()Ljava/util/concurrent/ExecutorService;
    .registers 1

    .line 160
    const/4 v0, -0x8

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    return-object v0
.end method

.method public static getCpuPool(I)Ljava/util/concurrent/ExecutorService;
    .registers 2
    .param p0, "priority"    # I

    .line 172
    const/4 v0, -0x8

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    return-object v0
.end method

.method public static getFixedPool(I)Ljava/util/concurrent/ExecutorService;
    .registers 2
    .param p0, "size"    # I

    .line 68
    invoke-static {p0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    return-object v0
.end method

.method public static getFixedPool(II)Ljava/util/concurrent/ExecutorService;
    .registers 3
    .param p0, "size"    # I
    .param p1, "priority"    # I

    .line 82
    invoke-static {p0, p1}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    return-object v0
.end method

.method private static getGlobalDeliver()Ljava/util/concurrent/Executor;
    .registers 1

    .line 1313
    sget-object v0, Lcom/blankj/utilcode/util/ThreadUtils;->sDeliver:Ljava/util/concurrent/Executor;

    if-nez v0, :cond_b

    .line 1314
    new-instance v0, Lcom/blankj/utilcode/util/ThreadUtils$3;

    invoke-direct {v0}, Lcom/blankj/utilcode/util/ThreadUtils$3;-><init>()V

    sput-object v0, Lcom/blankj/utilcode/util/ThreadUtils;->sDeliver:Ljava/util/concurrent/Executor;

    .line 1323
    :cond_b
    sget-object v0, Lcom/blankj/utilcode/util/ThreadUtils;->sDeliver:Ljava/util/concurrent/Executor;

    return-object v0
.end method

.method public static getIoPool()Ljava/util/concurrent/ExecutorService;
    .registers 1

    .line 138
    const/4 v0, -0x4

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    return-object v0
.end method

.method public static getIoPool(I)Ljava/util/concurrent/ExecutorService;
    .registers 2
    .param p0, "priority"    # I

    .line 149
    const/4 v0, -0x4

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    return-object v0
.end method

.method private static getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;
    .registers 2
    .param p0, "type"    # I

    .line 958
    const/4 v0, 0x5

    invoke-static {p0, v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    return-object v0
.end method

.method private static getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;
    .registers 7
    .param p0, "type"    # I
    .param p1, "priority"    # I

    .line 962
    sget-object v0, Lcom/blankj/utilcode/util/ThreadUtils;->TYPE_PRIORITY_POOLS:Ljava/util/Map;

    monitor-enter v0

    .line 964
    :try_start_3
    sget-object v1, Lcom/blankj/utilcode/util/ThreadUtils;->TYPE_PRIORITY_POOLS:Ljava/util/Map;

    invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v2

    invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/util/Map;

    .line 965
    .local v1, "priorityPools":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/Integer;Ljava/util/concurrent/ExecutorService;>;"
    if-nez v1, :cond_2c

    .line 966
    new-instance v2, Ljava/util/concurrent/ConcurrentHashMap;

    invoke-direct {v2}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V

    move-object v1, v2

    .line 967
    # invokes: Lcom/blankj/utilcode/util/ThreadUtils$ThreadPoolExecutor4Util;->createPool(II)Ljava/util/concurrent/ExecutorService;
    invoke-static {p0, p1}, Lcom/blankj/utilcode/util/ThreadUtils$ThreadPoolExecutor4Util;->access$400(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v2

    .line 968
    .local v2, "pool":Ljava/util/concurrent/ExecutorService;
    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v3

    invoke-interface {v1, v3, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 969
    sget-object v3, Lcom/blankj/utilcode/util/ThreadUtils;->TYPE_PRIORITY_POOLS:Ljava/util/Map;

    invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v4

    invoke-interface {v3, v4, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_44

    .line 971
    .end local v2    # "pool":Ljava/util/concurrent/ExecutorService;
    :cond_2c
    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v2

    invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/util/concurrent/ExecutorService;

    .line 972
    .restart local v2    # "pool":Ljava/util/concurrent/ExecutorService;
    if-nez v2, :cond_44

    .line 973
    # invokes: Lcom/blankj/utilcode/util/ThreadUtils$ThreadPoolExecutor4Util;->createPool(II)Ljava/util/concurrent/ExecutorService;
    invoke-static {p0, p1}, Lcom/blankj/utilcode/util/ThreadUtils$ThreadPoolExecutor4Util;->access$400(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v3

    move-object v2, v3

    .line 974
    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v3

    invoke-interface {v1, v3, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    .line 977
    :cond_44
    :goto_44
    monitor-exit v0

    return-object v2

    .line 978
    .end local v1    # "priorityPools":Ljava/util/Map;, "Ljava/util/Map<Ljava/lang/Integer;Ljava/util/concurrent/ExecutorService;>;"
    .end local v2    # "pool":Ljava/util/concurrent/ExecutorService;
    :catchall_46
    move-exception v1

    monitor-exit v0
    :try_end_48
    .catchall {:try_start_3 .. :try_end_48} :catchall_46

    throw v1
.end method

.method public static getSinglePool()Ljava/util/concurrent/ExecutorService;
    .registers 1

    .line 93
    const/4 v0, -0x1

    invoke-static {v0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(I)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    return-object v0
.end method

.method public static getSinglePool(I)Ljava/util/concurrent/ExecutorService;
    .registers 2
    .param p0, "priority"    # I

    .line 105
    const/4 v0, -0x1

    invoke-static {v0, p0}, Lcom/blankj/utilcode/util/ThreadUtils;->getPoolByTypeAndPriority(II)Ljava/util/concurrent/ExecutorService;

    move-result-object v0

    return-object v0
.end method

.method public static isMainThread()Z
    .registers 2

    .line 56
    invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;

    move-result-object v0

    invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;

    move-result-object v1

    if-ne v0, v1, :cond_c

    const/4 v0, 0x1

    goto :goto_d

    :cond_c
    const/4 v0, 0x0

    :goto_d
    return v0
.end method

.method public static setDeliver(Ljava/util/concurrent/Executor;)V
    .registers 1
    .param p0, "deliver"    # Ljava/util/concurrent/Executor;

    .line 898
    sput-object p0, Lcom/blankj/utilcode/util/ThreadUtils;->sDeliver:Ljava/util/concurrent/Executor;

    .line 899
    return-void
.end method