Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

241
Vistas
¿Se supone que funciona pasar Int32Array en lugar de SharedArrayBuffer?

Tengo un código que crea un búfer de matriz compartido y pasa Int32Array y NO SharedArrayBuffer al trabajador:

 let worker = new Worker(...); worker.postMessage({ position: { x: createArray(), y: createArray() }, velocity: { x: createArray(), y: createArray() } }); function createArray(size = 1024) { let buffer = new SharedArrayBuffer(size); return new Int32Array(buffer); }

En el trabajador estoy actualizando los enteros resultantes en un bucle a través de la matriz.

 let components = e.data; let velocityX = Atomics.load(components.velocity.x, shipEid); let velocityY = Atomics.load(components.velocity.y, shipEid); Atomics.add(components.position.x, shipEid, velocityX); Atomics.add(components.position.y, shipEid, velocityY);

Ahora, mi pregunta es, ¿es válido pasar Int32Array al trabajador en lugar de SharedArrayBuffer ? Honestamente, ni siquiera me di cuenta de que estaba haciendo esto hasta mucho más tarde, y ahora que me doy cuenta, me pregunto por qué funciona. Pensé que tenía que pasar SharedArrayBuffer al trabajador para compartir la memoria entre el trabajador y el proceso principal. ¿Es esto realmente parte de la especificación para que funcione de esta manera, o es algo específico de Chrome que fallará para otros navegadores y posiblemente fallará en Chrome en el futuro?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Sí, esto es válido. Tenga en cuenta que en realidad tampoco está pasando el Int32Array : está pasando un objeto que tiene propiedades que son objetos que tienen propiedades que son matrices escritas. Esto funciona porque el argumento de postMessage en realidad está clonado estructuralmente , y cuando el algoritmo de clonación alcanza el SharedArrayBuffer que es parte de su estructura, entonces se clona en un nuevo objeto de búfer que comparte la memoria subyacente .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda