Articles of multithreading

Libgdx использует ScreenUtils асинхронно и не останавливает игровой цикл

Я хочу захватить экран. Libgdx предоставляет некоторые функции, определенные в классе ScreenUtils . Например, final Pixmap pixmap = ScreenUtils.getFrameBufferPixmap(x, y, w, h); Моя проблема заключается в том, что для получения этой информации требуется около 1-3 секунд. За это время игровой цикл блокируется, и пользователь будет определять его как задержку. Внутри класса Gdx.gl.glReadPixels используется Gdx.gl.glReadPixels . […]

Как я могу гарантировать, что еще один обработчик Thread не имеет значения null до его вызова?

Моя программа бросила NullPointerException на другой день, когда попыталась использовать обработчик, созданный в другом потоке, для отправки этого потока сообщение. Обработчик, созданный другим потоком, еще не был создан или еще не виден вызывающему потоку, несмотря на то, что вызывающий поток уже вызвал начало в другом потоке. Это происходит очень редко. Почти каждый тестовый прогон не […]

Android MIDI Threading InteruptedException – сообщения Aftertouch

Попытка запуска MIDI в моем приложении для Android. Я следую примеру midisuite для настройки моего приложения, и он отлично работает, за исключением aftertouch. Всякий раз, когда я пытаюсь вызвать aftertouch, я сталкиваюсь с типом исключения InteruptedException . Как предотвратить эту проблему с потоками? Мои знания о многопоточности не самые лучшие, иначе я бы уже понял […]

Обработка прерывания Exception во время ожидания сигнала выхода (ошибка в Android?)

Я столкнулся с приведенным ниже кодом, и мне интересно, делает ли он именно то, что я думаю: synchronized(sObject) { mShouldExit = true; sObject.notifyAll() while (!mExited) { try { sObject.wait(); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); } } } Об этом контексте: есть другой поток, который проверяет mShouldExit (внутри монитора sObject ) и выйдет в этом […]

Что относительно многопоточности в Android-SQLite?

В моем приложении я должен реализовать некоторые службы пользовательского интерфейса и синхронизации. Он работает в фоновом режиме и обновляет данные. Служба синхронизации не очень проста, она использует многопоточность. Итак, вот моя история: когда я начал разрабатывать это приложение, я ничего не знал о sqlite, поэтому я просто не использовал нишу синхронизации на Java. Результат: у […]

Android Lollipop 5.0.1 SQLiteLog Ошибка POSIX 11 Ошибка SQLite: 3850

У меня возникла проблема при обновлении приложения для поддержки Android Lollipop. Приложение реализует SyncAdapter, который записывает данные через db через поставщика контента. В то же время может случиться так, что пользователь просматривает внешний интерфейс приложения, где загрузчики считывают одни и те же данные из базы данных. Погрузчики также прослушивают изменения данных. Теперь, если я запускаю […]

Пауза / остановка и запуск / возобновление Java TimerTask непрерывно?

У меня есть один простой вопрос относительно Java TimerTask. Как приостановить / возобновить две задачи TimerTask на основе определенного условия? Например, у меня есть два таймера, которые работают между собой. Когда в задаче первого таймера выполняется определенное условие, первый таймер останавливается и запускает второй таймер, и то же самое происходит, когда определенное условие выполняется внутри […]

Android – как передать данные в Runnable в runOnUiThread?

Мне нужно обновить некоторый пользовательский интерфейс и сделать это внутри потока пользовательского интерфейса, используя runOnUiThread Теперь данные для пользовательского интерфейса поступают из другой темы, представленной здесь. Как я могу передать данные в Runnable, так что они могут быть использованы для обновления пользовательского интерфейса? Android, похоже, не позволяет напрямую использовать данные. Есть ли элегантный способ сделать […]

Ответные обратные ответы Okhttp на основной поток

Я создал вспомогательный класс для обработки всех моих HTTP-вызовов в моем приложении. Это простая обходная оболочка для okhttp, которая выглядит так (я опустил некоторые несущественные части): public class HttpUtil { private OkHttpClient client; private Request.Builder builder; … public void get(String url, HttpCallback cb) { call("GET", url, cb); } public void post(String url, HttpCallback cb) { […]

Как дождаться завершения всех задач в ThreadPoolExecutor, не закрывая Executor?

Я не могу использовать shutdown() и awaitTermination() потому что возможно, что новые задачи будут добавлены в ThreadPoolExecutor во время ожидания. Поэтому я ищу способ подождать, пока ThreadPoolExecutor освободит его очередь и завершит все его задачи, не останавливая добавление новых задач до этого момента. Если это имеет значение, это для Android. благодаря Обновление : спустя несколько […]