Форум программистов, компьютерный форум CyberForum.ru

Тонкости потоков - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Не отображаются логи в Logcat http://www.cyberforum.ru/android-dev/thread1142936.html
Ребят подскажите в чем проблема не отображаются логи в LogCat должны отображаться логи методов } // Конец onCreate(Bundle) @Override public void onStart(){ super.onStart(); Log.d(TAG, "onStart() called"); }
Android Небольшой конфуз с запуском второй Activity Всем приветик! Возникла небольшая проблемка с передачей данных между двумя активити. Вот код первой активити: import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; http://www.cyberforum.ru/android-dev/thread1142831.html
Android Создание ListView с CheckBox из БД
Привет, приложение создает БД с полями id, String и Int _id Name Check 1 Москва 1 2 Казань 0 3 Ростов 0 4 Минск 1 5 Дели 1
Как создать обработчик нажатия на картинку Android
Как создать обработчик нажатия на картинку если она не является View элементов, она часть слоев.
Android Pdf водяные знаки http://www.cyberforum.ru/android-dev/thread1142716.html
как программно реализовать вывод на каждой странице документа водяного знака?
Android Как программно создать ImageView Как программно создать ImageView и присвоить ему ID? подробнее

Показать сообщение отдельно
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,502

Тонкости потоков - Android

08.04.2014, 23:00. Просмотров 1382. Ответов 7
Метки (Все метки)

Не до конца понимаю что из себя представляет поток в яве андроида!
Сделал второй поток для помощи в отрисовке. Он в бесконечном цикле перебирает таблицу-очередь и обрабатывае лежащие в ней записи. Но... в тихом режиме он забирает 100% процессора! Даже если я ничего не трогаю. Попытался перед запуском понизить его приоритет
Tread1.setPriority(Thread.MIN_PRIORITY); //
Tread1.start();
Не помогло! Приходится ставить sleep(100) для потока. Это уменьшает нагрузку для процессора без сильных потерь. Но это подтормаживает его если в списке появляются новые записи - обрабатывает не сразу.
Перебор списка крайне простой! Примерно так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
        Tread1 = new Thread(new Runnable() { public void run() {
            Tread_Runed = true;
            while (Tread_Runed){
// без этого забирает 100% ядра!
//                sleep_redraw = 50;//теоретически можно менять
//                try { Thread.currentThread().sleep(sleep_redraw); } catch (Exception e) { }
                Tread_ListItem item;
                int size1;
                synchronized(mTreadArr) {
                    size1 = mTreadArr.size() - 1;
                }
                for (int i = size1 - 1; i >= 0; i--) {
                    synchronized(mTreadArr) {
                        if (i>=mTreadArr.size()) continue; // вдруг снаружи уменьшили список
                        item = mTreadArr.get(i);
                    }
                    if (!item.ok) {
                        RecalcItem(item);
                        item.ok = true;
                    }
                }
            }
        }});
        Tread1.setPriority(Thread.MIN_PRIORITY); //
        Tread1.start();
Сейчас подумываю схему динамической замены времени задержки (sleep) или поиграться в остановить/возобновить поток, но может есть более "правильный" способ???
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru