ChunkWorker class

Пакет: com.hypixel.hytale.server.worldgen.util

Файл: com/hypixel/hytale/server/worldgen/util/ChunkWorkerThreadFactory.java

extends: Thread

Поля (2)

МодификаторыТипИмя
protected final ChunkGenerator chunkGenerator
ChunkGeneratorResource var1

Методы (2)

МодификаторыВозвратСигнатура
public void runpublic void run()
abstract super super(var1, var2)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.worldgen.util;

class="kw">import com.hypixel.hytale.server.worldgen.ChunkGeneratorResource;
class="kw">import com.hypixel.hytale.server.worldgen.chunk.ChunkGenerator;
class="kw">import java.util.concurrent.ThreadFactory;
class="kw">import java.util.concurrent.atomic.AtomicInteger;
class="kw">import javax.annotation.Nonnull;

class="kw">public class ChunkWorkerThreadFactory class="kw">implements ThreadFactory {
   class="kw">private class="kw">static class="kw">final AtomicInteger FACTORY_COUNTER = new AtomicInteger();
   class="kw">private class="kw">final ChunkGenerator chunkGenerator;
   class="kw">private class="kw">final String threadNameFormat;
   @Nonnull
   class="kw">private class="kw">final Integer factoryId;
   @Nonnull
   class="kw">private class="kw">final AtomicInteger threadCounter;

   class="kw">public ChunkWorkerThreadFactory(ChunkGenerator var1, String var2) {
      this.chunkGenerator = var1;
      this.threadNameFormat = var2;
      this.factoryId = FACTORY_COUNTER.incrementAndGet();
      this.threadCounter = new AtomicInteger();
   }

   @Nonnull
   @Override
   class="kw">public Thread newThread(Runnable var1) {
      Integer var2 = this.threadCounter.incrementAndGet();
      String var3 = String.format(this.threadNameFormat, this.factoryId, var2);
      ChunkWorkerThreadFactory.ChunkWorker var4 = new ChunkWorkerThreadFactory.ChunkWorker(var1, var3, this.chunkGenerator);
      var4.setDaemon(true);
      class="kw">return var4;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "ChunkWorkerThreadFactory{chunkGenerator="
         + this.chunkGenerator
         + ", threadNameFormat='"
         + this.threadNameFormat
         + "', factoryId="
         + this.factoryId
         + ", threadCounter="
         + this.threadCounter
         + "}";
   }

   class="kw">protected class="kw">static class ChunkWorker class="kw">extends Thread {
      class="kw">protected class="kw">final ChunkGenerator chunkGenerator;

      class="kw">protected ChunkWorker(Runnable var1, @Nonnull String var2, ChunkGenerator var3) {
         super(var1, var2);
         this.chunkGenerator = var3;
      }

      @Override
      class="kw">public void run() {
         ChunkGeneratorResource var1 = ChunkGenerator.getResource();
         var1.init(this.chunkGenerator);

         try {
            super.run();
         } class="kw">finally {
            var1.release();
         }
      }
   }
}