¿Hay bloqueo multiplataforma en Kotlin?

4ntoine:

Lo multiplataforma bloqueo o enfoque de sincronización debe ser utilizado en múltiples plataformas de código Kotlin? Anteriormente en código Java i utilizado synchronizedy puedo ver synchronizeden Kotlin también. Sin embargo, es marcado como obsoleto y se eliminará de commonlib std pronto.

Puedo ver withLock, pero está apoyado en JVM solamente, no multiplataforma.

¿Alguna idea?

PD. Por ahora no queremos migrar a corrutinas Kotlin debido al exceso de reescritura y corrutinas huella de la biblioteca (demasiado grande para la biblioteca de Android con los estrictos requisitos de huella de disco).

El operador :

A partir de la documentación Kotlin / Nativo Concurrente ( aquí ):

Concurrencia en Kotlin / Nativo

Kotlin / tiempo de ejecución nativo no fomenta un modelo de concurrencia orientada hilos clásico con bloques de código que se excluyen mutuamente y variables condicionales, ya que este modelo es conocido por ser propenso a errores y poco fiable. En su lugar, se sugiere un conjunto de enfoques alternativos, lo que permite utilizar la concurrencia de hardware e implementar el bloqueo de IO. Esos enfoques son los siguientes, y serán detallados en los registros secciones adicionales:

  • Los trabajadores con el paso de mensajes
  • Objeto de transferencia de la propiedad subgrafo
  • Objeto subgrafo congelación
  • Objeto subgrafo desprendimiento
  • Prima la memoria compartida usando variables globales C
  • Corrutinas para las operaciones de bloqueo (no cubiertos en este documento)

Parece que los bloqueos no se exponen en Kotlin / nativo por diseño. No son implementaciones (ver Lock.kt ), sin embargo, que la clase está marcado internal.

Sin embargo , hay una implemenation multi-plataforma de cerraduras en KTOR (muy limitado doc , código fuente ). Es pública, pero marcado con @InternalApi, lo que puede afectar su estabilidad.

Usted también puede estar interesado en este hilo de discusión KotlinLang: Reemplazo para sincronizado

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=226459&siteId=1
Recomendado
Clasificación