многопоточность в реагировать родной

2

У меня есть приложение React-Native, и я хочу использовать параллельное программирование (я хочу использовать все ядра планшета).

Я пробовал библиотеки paralleljs и hamsters.js но они не были полезны. Один не поддерживает RN, а другой имеет некоторые проблемы с Blobs на данный момент.

Поэтому я решил использовать веб-работников. После некоторого поиска на нем (из MDN и т.д.) Я понял, что вместо всех этих библиотек я могу использовать только веб-работников. Однако я не могу быть уверен в этом на 100%. Существуют и другие библиотеки, предназначенные для RN, например, рабочие-реагирующие, но у всех много проблем.

Мой вопрос заключается в том, как использовать чистый JS-код, чтобы использовать многопоточное и/или параллельное программирование в приложении React-Native? Или это еще не возможно?

Теги:
react-native
multithreading
web-worker
react-native-android

2 ответа

0

Вы можете использовать WebView, который будет запускать JS в фоновом потоке. Потому что внутри webview это еще один экземпляр Webkit, поэтому JS, работающий в нем, вообще не блокирует пользовательский интерфейс приложения.

Прочтите этот блогпост для более подробной информации: https://medium.com/@inkdrop/a-simple-way-to-run-js-in-background-thread-on-react-native-8fff345576da

-1

Чиновник говорит, что React Native может реализовать какой-то собственный модуль моста, чтобы использовать преимущества расширенных расширений. Я не уверен, чего вы хотите достичь, используя многопоточное и/или параллельное программирование, но с чистым JavaScript вы можете сделать некоторые подобные вещи, как они.

Например, это своего рода параллельное программирование с использованием JavaScript.

setTimeout(() => {
  // One time-consuming logics
});
setTimeout(() => {
  // Another time-consuming logics
});

Вы также можете использовать Promise. Это также дает нам возможность легко обрабатывать параллельное программирование (https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/all)

Однако, если вы хотите сделать многопоточное чтение, это не очень просто. Вам придется написать свой собственный код расширения, который объединяет собственный код и React Native. Конечно, на самом деле это не просто чистый JS, но это сила React Native. Вы можете создать собственное расширение для использования собственных модулей в JavaScript.

  • 0
    Ни setTimeout ни new Promise запускают код в новых потоках. Они оба работают только в главном потоке, но с разными приоритетами и используют прерывания событий.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню