Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

153
Views
Suspender bloques de funciones subproceso principal

Me cuesta entender las rutinas. Esta es una configuración muy simple. Tanto longComputation como delay son funciones suspendidas. El primero bloquea el hilo principal, el segundo no. ¿Por qué?

 CoroutineScope(Dispatchers.Main).launch { val result = longComputation() // Blocks delay(10_000) // Doesn't block }
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Eso depende. ¿Qué hace longComputation exactamente? Cuando marca una función como suspend , esto no significa que no pueda incluir código de bloqueo en ella. Por ejemplo, echa un vistazo a este:

 suspend fun blockingSuspendFunction(){ BigInteger(1500, Random()).nextProbablePrime() }

El código dentro de la función de suspensión es obviamente algo que utiliza la CPU y bloquea a la persona que llama. Por convención , esto no debe hacerse porque si llama a una función de suspensión, espera que no bloquee el hilo:

Convención: las funciones de suspensión no bloquean el subproceso de la persona que llama. ( https://medium.com/@elizarov/blocking-threads-suspending-coroutines-d33e11bf4761 )

Para hacer que dicha función "se comporte como una función de suspensión", el bloqueo debe enviarse a otro subproceso de trabajo, lo que (por recomendación) debería ocurrir con withContext :

 suspend fun blockingSuspendFunction() = withContext(Dispatchers.Default) { BigInteger.probablePrime(2048, Random()) }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!