Thread pools on the JVM should usually be divided into the following three categories:
- CPU-bound
- Blocking IO
- Non-blocking IO polling
Each of these categories has a different optimal configuration and usage pattern.
package io.chrisdavenport | |
import cats._ | |
import cats.implicits._ | |
import cats.effect.{IO, Sync} | |
import java.util.UUID | |
abstract class FUUIDModule { | |
type FUUID |
import java.nio.charset.StandardCharsets.UTF_8 | |
import java.util.concurrent.atomic.{AtomicInteger, AtomicReference} | |
import cats.effect.{Concurrent, Sync} | |
import cats.syntax.all._ | |
import fs2.async.mutable.Queue | |
import fs2.{Sink, Stream} | |
import org.http4s.websocket.WebsocketBits._ | |
import WebsocketMsg._ |
import cats.effect.IO | |
import cats.implicits._ | |
import fs2._ | |
import fs2.async.mutable.Signal | |
import scala.concurrent.ExecutionContext | |
import scala.concurrent.duration._ | |
import java.util.Random |
package org.http4s | |
import cats.effect.IO | |
import cats.implicits._ | |
import fs2._ | |
import org.http4s.client.Client | |
import org.http4s.circe._ | |
import org.http4s.dsl.io._ | |
import org.http4s.client.blaze.Http1Client |
_hashCode java/lang/Object.hashCode()I | |
_getClass java/lang/Object.getClass()Ljava/lang/Class; | |
_clone java/lang/Object.clone()Ljava/lang/Object; | |
_dabs java/lang/Math.abs(D)D | |
_dsin java/lang/Math.sin(D)D | |
_dcos java/lang/Math.cos(D)D | |
_dtan java/lang/Math.tan(D)D | |
_datan2 java/lang/Math.atan2(DD)D | |
_dsqrt java/lang/Math.sqrt(D)D | |
_dlog java/lang/Math.log(D)D |
import java.nio.charset.StandardCharsets | |
import cats.effect._ | |
import cats.implicits.{catsSyntaxEither => _, _} | |
import fs2._ | |
import org.http4s._ | |
import org.http4s.multipart._ | |
import org.http4s.util._ | |
/** A low-level multipart-parsing pipe. Most end users will prefer EntityDecoder[Multipart]. */ |
import cats.{Applicative, Monad} | |
import cats.syntax.all._ | |
import org.http4s._ | |
sealed trait Route[F[_]] { | |
def run(r: Request[F]): F[Response[F]] | |
def <+>(other: Route[F]): Route[F] | |
} |
import java.util.concurrent.Executors | |
import cats.effect._ | |
import fs2._ | |
import org.scalatest.{FlatSpec, MustMatchers} | |
import scala.concurrent.duration._ | |
import scala.concurrent.ExecutionContext | |
class TestNStuff extends FlatSpec with MustMatchers { |
/** Method in question: | |
* https://github.com/circe/circe/blob/master/modules/core/shared/src/main/scala/io/circe/JsonObject.scala#L260 | |
*/ | |
object GucciMane extends App { | |
println(classOf[io.circe.JsonObject$].getMethod("fromLinkedHashMap")) //Throws NoSuchMethodException | |
} |