Цитата:
|
Сообщение от __etc
WindWalker, swf без сорсов ничего такого своим внешним видом не рассказывает.
|
Да так ли важно, как это устроено? Главное - как это выглядит для конечного пользователя.
А выглядит это просто - достаточно объёмные вычисления (9! = 362880 итераций - для AS2 это достаточно много) не подвешивают плеер, а выполняются постепенно с отображением текущего прогресса.
Принцип работы простой: есть метод, который выполняет одну-единственную итерацию.
В onEnterFrame засекается время через getTimer(), затем начинает в цикле вызываться метод и после каждого заверешения проверяется, сколько времени прошло. Метод вызывается до тех пор, пока время не превысит 20 миллисекунд. На этом обработка onEnterFrame заканчивается.
Продолжение - в следующем кадре.
То есть в каждом кадре выполняется столько итераций, сколько успеет выполниться за 20 мс.
Основная проблема такого подхода - необходимо вычленить эту самую "одну итерацию".
Цитата:
|
Если вы реализовали несколько конвееров (которые имеют псевдо одно и то же время старта), то это не многопоточность.
|
Ну тогда вопросы:
1. А что тогда такое многопоточность? Критерии, пожалуста.
2. Зачем нужна полная и настоящая многопоточность для синхронных вызовов?