@Restive alt text
Глобальный массив или объект
-
В инструментах ресурс - удалить последний элемент. При этом ресурс должен быть настроен и на запись.
-
@olegar said in Глобальный массив или объект:
Есть ли способ работать с глобальным массивом или объектом? В "списке" написано для этих целей использовать ресурс. Добавить элемент в ресурс можно, а вот удалить его оттуда нет (или я не понял как).
самое простое это переводить локальную переменную в глобальную и обратно
-
@olegar said in Глобальный массив или объект:
@Fox не годится, если 2 или 5 потоков одновременно проделают данную операцию будет каша.
Перезаписывать глобальную переменную нельзяКаши не будет, используйте поиск по форуму, тему уже несколько раз обсуждали. Я даже приводил в пример тесты в 100 потоков одновременной работы с объектом в глобальной переменной
-
@olegar у меня для этого существует еще одна глобальная переменная-селектор, в которую записывается номер потока-хозяина, через секунду поток проверяет, если его номер прописан в переменной, то он работает со списком, а остальные ждут освобождение селектора.
Знаю коряво, но может кто подскажет аналог "критических секций", как в си, для js? -
@Vituskosoy said in Глобальный массив или объект:
@olegar у меня для этого существует еще одна глобальная переменная-селектор, в которую записывается номер потока-хозяина, через секунду поток проверяет, если его номер прописан в переменной, то он работает со списком, а остальные ждут освобождение селектора.
Знаю коряво, но может кто подскажет аналог "критических секций", как в си, для js?Поищите по форуму примеры реализации блокировки потоков при работе с буфером обмена. Кстати для критической секции планируется добавить отдельное действие, но внутри оно будет работать так же, через глобальную переменную.
Глобальные переменные перезаписываются по очереди, архитектура BAS не позволит переписать одновременно двум потокам одну глобальную переменную, что бы получилась каша (как например с одновременной записью в файл без ресурсов)