Articles of Многопоточность

Дождитесь завершения встроенного потока до перехода к следующему методу

У меня есть приложение для Android, в котором я делаю следующее: private void onCreate() { final ProgressDialog dialog = ProgressDialog.show(this, "Please wait..", "Doing stuff..", true); new Thread() { public void run() { //do some serious stuff… dialog.dismiss(); } }.start(); stepTwo(); } И я хотел бы убедиться, что мой поток завершен до stepTwo (); называется. Как […]

Как решить проблему с библиотекой NDK вызывает замораживание потока пользовательского интерфейса

У меня есть библиотека C, к которой я обращаюсь через NDK. Некоторые операции занимают много времени, поэтому на них зависает нить пользовательского интерфейса. Как я сейчас, обычной практикой является использование Runnable следующим образом: myFixedThreadPool.execute(new Runnable() { public void run() { NativeClass.callToNDKLibrary(); }; }); Или такие потоки: Thread t = new Thread() { public void run() […]

Неправильно ли выполнить runnable.run ()?

Я довольно новичок в концепции многопоточности, и есть неясный аспект. Существует два способа создания и запуска потока: Расширьте класс Thread и start() поток. Создайте объект Runnable, передайте его конструктору Thread и start() поток. И этот пост в блоге гласит, что мы всегда должны начинать поток с использованием start() или так было мое впечатление от него. […]

Синхронизировать доступ к HashMap из двух потоков в java

У меня есть два потока (One – основной Thread1 (Say Thread1 ), а другой – фоновый поток (скажем, Thread2 )). Я могу получить доступ к hashMap Thread1 HashMap из Thread1 и Thread2 . Thread1 изменяет hashMap и Thread2 читает HashMap. В коде Thread1 будут: synchronized(hashMap){ //updating hashMap } В Thread2 код будет: synchronized(hashMap){ //reading hashMap […]

Максимальное количество потоков Android

Я хочу знать, есть ли максимальное количество потоков, которые можно запустить на устройстве Android. Это зависит от типа устройства?

Ожидание завершения потока без блокировки нити пользовательского интерфейса

Im работает поток внутри метода, и я хочу вернуть значение после завершения потока, проблема, которую я пытался выполнить join (), но которая блокирует поток пользовательского интерфейса. Как я могу дождаться окончания потока и вернуть значение без блокировки потока пользовательского интерфейса? Boolean foo(){ myThread mt = new myThread(); mt.start(); return mt.isSentSuccessfully; }

Android: фоновый поток

Команда, Мне нужно запустить фоновый поток в моем приложении. Не могли бы вы поделиться лучшими практиками, в которых инициировать поток, чтобы он продолжал работать независимо от того, какая активность отображается и что нужно учитывать. Цель этого фонового потока – запустить транзакции с Simulator на сервер и получить ответ от хоста. Спасибо, Рамеш

Как установитьText из отдельного потока в Android

Я хочу setText из Thread. Это мой код темы: private class GenerateThread implements Runnable { public void run(){ // generate the first music music = generate(prevmusic, prevmusic.length); prevmusic = music; // write the midi writeMidi(music, song); textOut.setText("Initialising…"); }); } } В моем основном коде, я использую Thread t = new Thread(new GenerateThread()); t.start(); Это не […]

Живет ли анонимный класс?

Загляните по следующей ссылке: пример кода GLSurfaceView В частности, посмотрите на следующую функцию во втором кодовом блоке на этой странице: public boolean onTouchEvent(final MotionEvent event) { queueEvent(new Runnable() { public void run() { mRenderer.setColor(event.getX() / getWidth(), event.getY() / getHeight(), 1.0f); } }); return true; } Что меня смущает, так это то, что anon Runnable ссылается […]

Поток с пользовательскими состояниями

Возможно ли в Java (Android) реализовать настраиваемую версию Thread, которая несет свои собственные государства? Я имею в виду: хотя ThreadA находится в состоянии Running, он все еще может быть опрошен ThreadB, который запрашивает его состояние eg ThreadA.getState(); Можно изменить значения состояний на некоторые пользовательские? Чтобы внедрить своего рода базовую систему связи между этими двумя потоками? […]