Comunicación Nativa Segura a ArkTS en HarmonyOS con napi_create_threadsafe_function

Aprende napi_create_threadsafe_function para llamar ArkTS desde código nativo de forma segura y sin bloqueo en HarmonyOS Next, usando promesas.

29 ago 2025 • 4 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

Introducción: por qué necesitamos llamadas seguras desde código nativo hacia ArkTS

Al desarrollar módulos NDK en HarmonyOS Next es habitual ejecutar tareas largas o críticas en rendimiento en código nativo C++. Esas tareas suelen correr en hilos nativos que, en algún momento, necesitan enviar resultados o provocar actualizaciones en la capa ArkTS. ArkTS es monohilo y no es seguro invocar sus funciones directamente desde hilos nativos. Para resolver esto existe la interfaz de Node API llamada napi_create_threadsafe_function que permite invocar funciones JavaScript de forma asíncrona y segura desde múltiples hilos nativos.

Qué aporta napi_create_threadsafe_function

Seguridad de hilos evita condiciones de carrera y deadlocks. No bloqueo permite que las tareas nativas continúen sin detener el hilo principal. Integración con promesas posibilita que hilos nativos esperen resultados de ArkTS utilizando mecanismos como std::promise en C++ y promesas en ArkTS.

Caso de uso práctico

Un escenario típico es lanzar trabajo pesado en C++ en segundo plano y, cuando esté listo, notificar la capa ArkTS para actualizar la interfaz de usuario o continuar con la lógica de negocio. La técnica general consiste en crear un thread safe function, pasarle un contexto o puntero a un promise en C++, invocar la función JS de forma segura desde el hilo nativo y encadenar then y catch en ArkTS para resolver o rechazar la promesa en C++.

Resumen paso a paso

Declaración de la API en ArkTS: definir una función exportada que reciba un callback asíncrono desde ArkTS y que inicie el trabajo nativo. Implementación nativa: crear una estructura de datos para almacenar el thread safe function y el trabajo asíncrono. Crear el thread safe function con napi_create_threadsafe_function pasando el callback JS recibido desde ArkTS. En un hilo de trabajo o en ExecuteWork se crea un promise de C++ y se llama a napi_call_threadsafe_function con el puntero a ese promise y la opción nonblocking. La función CallJs invocará el callback JS y le añadirá then y catch para resolver o rechazar el promise nativo. Cuando la promesa en JS se resuelva se transferirá el resultado al promise en C++ y el hilo nativo podrá obtenerlo mediante future.get. Finalmente, en WorkComplete se liberan los recursos: se libera el thread safe function y se elimina el trabajo asíncrono.

Beneficios clave

Comunicación segura entre hilos nativos y ArkTS sin invocar directamente funciones en hilos no permitidos. Rendimiento los procesos pesados permanecen en C++ reduciendo la carga del hilo principal. Puente basado en promesas permite una comunicación bidireccional elegante entre C++ y ArkTS usando promesas nativas y promesas en ArkTS. Separación de responsabilidades mantiene la lógica de cálculo en el módulo nativo y la presentación en ArkTS.

Escenarios prácticos

Obtención de grandes volúmenes de datos en hilos nativos para luego actualizar la interfaz con ArkTS. Cómputo intensivo como modelos de IA o procesamiento de señales en C++ y entrega de resultados a ArkTS. Lecturas de sensores o E/S de dispositivos en segundo plano que notifiquen al frontend ArkTS.

Buenas prácticas para desarrolladores

No invocar funciones ArkTS directamente desde hilos nativos. Siempre usar napi_call_threadsafe_function para pasar datos y callbacks de forma segura. Evitar bucles muy cerrados o saturar ArkTS con llamadas nativas continuas. Gestionar correctamente la memoria y liberar estructuras auxiliares como CallbackData al completar el trabajo.

Integración en proyectos empresariales y servicios avanzados

En Q2BSTUDIO, empresa especializada en desarrollo de software y aplicaciones a medida, aplicamos estas técnicas para integrar módulos nativos con capas front en ArkTS en soluciones profesionales. Nuestro portfolio incluye proyectos de software a medida con componentes nativos de alto rendimiento para casos que requieren inteligencia artificial, agentes IA y procesamiento intensivo. Combinamos buenas prácticas de desarrollo NDK con servicios cloud aws y azure para desplegar soluciones escalables y seguras.

Cómo Q2BSTUDIO puede ayudarte

Ofrecemos desarrollo de aplicaciones a medida y software a medida que integra componentes nativos y frameworks modernos como ArkTS. Podemos diseñar arquitecturas que incorporen inteligencia artificial para empresas, modelos de machine learning ejecutados en C++ y exposiciones seguras a ArkTS mediante técnicas como napi_create_threadsafe_function. También proveemos servicios de ciberseguridad, servicios de inteligencia de negocio y soluciones con power bi para visualización y reporting. Si tu proyecto necesita agentes IA, integración con servicios cloud aws y azure o consultoría en ia para empresas, Q2BSTUDIO dispone del equipo técnico y la experiencia para entregar resultados robustos.

Conclusión

napi_create_threadsafe_function es una herramienta esencial para cualquier desarrollador NDK en HarmonyOS Next que necesite interactuar de forma segura con ArkTS desde código nativo. Proporciona seguridad de hilos, no bloqueo y un mecanismo natural basado en promesas para integrar C++ y ArkTS en arquitecturas híbridas. Si necesitas asistencia para implementar esta comunicación en tu producto o buscas desarrollar software a medida con capacidades de inteligencia artificial y ciberseguridad, contacta a Q2BSTUDIO para una solución profesional y escalable.

Palabras clave

aplicaciones a medida, software a medida, inteligencia artificial, ia para empresas, agentes IA, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, power bi

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat