С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 111
#1

Как забрать данные из отработавшего потока? - Программирование Android

16.10.2014, 14:41. Просмотров 1162. Ответов 22
Метки нет (Все метки)

Код в потоке сгенерил массив интов и завершился.Как забрать данные?
ЗЫ:в жабе есть какой то аналог WaitForSingleObject ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2014, 14:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как забрать данные из отработавшего потока? (Программирование Android):

Как вытащить данные из потока. Cant create handler inside thread that has not called Looper.prepare() - Программирование Android
В общем столкнулся со следующей неприятной проблемой. Есть клиент. Он запрашивает у сервера некоторые данные. Сервер эти данные посылает...

Как правильней забрать данные - PHP
Доброе утро, уважаемые форумчане!) Столкнулся с токой проблемой, что не знаю как ПРАВИЛЬНЕЙ забрать id категории с url страницы. Вот,...

Как правильно забрать данные - PHP
Доброе вечер, уважаемые форумчане!) Столкнулся с токой проблемой, что не знаю как ПРАВИЛЬНО забрать часть строки из строки. Вот, к...

Как забрать из clipboard данные? - JavaScript
Подскажите, плиз, как забрать из буфера обмена (clipboard) данные? Я пользуюсь my_obj.clipboardData.getData('Text'), которая возвращает...

Как забрать данные из ячейки? - Delphi БД
Проблема состоит в том что у меня есть две таблицы и при выборе в первой таблице поле со второй должны забираться данные и выводится...

Как забрать данные из ActionListener - JavaFX
День добрый, интересует как забрать данные из ActionListener? По нажатию кнопки забираю данные из текстовых полей, присваиваю их...

22
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
16.10.2014, 14:52 #2
yotsi, Handler/Async task.
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,070
Завершенные тесты: 1
16.10.2014, 14:58 #3
или http://docs.oracle.com/javase/7/docs...utureTask.html
0
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 111
16.10.2014, 15:10  [ТС] #4
А если Thread наследовать то ни как?
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
16.10.2014, 16:42 #5
yotsi, можете использовать интерфейс Callable он подразумевает возврат результата.
0
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 111
16.10.2014, 20:28  [ТС] #6
Цитата Сообщение от KillAndEat Посмотреть сообщение
Callable
Костыль настолько зверский что нигде нету понятных примеров((((
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
16.10.2014, 23:00 #7
yotsi, почему костыль? Довольно удобный интерфейс.

Что там непонятного? Для начала нужно создать объект
Java
1
Future<возвращаемый тип данных> f
, далее создать экзекутор
Java
1
ExecutorService executorService  = Executors.newFixedThreadPool(5);//например
, потом все это дело нужно запустить
Java
1
2
3
4
f = executorService.submit(new Callable<возвращаемый тип данных>() {
            @Override
            public возвращаемый тип данных call(){}
});
ну и затем вытащить из Future результат путем вызова метода get();(этот метод лочит выполнение программы до отработки Callable), или подождать отработки вот таким способом
Java
1
2
3
while (!f.isDone()){
            //w8
        }
а затем при помощи того же get() вытащить результат
0
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 111
16.10.2014, 23:05  [ТС] #8
Цитата Сообщение от KillAndEat Посмотреть сообщение
Довольно удобный интерфейс
Удобно это когда есть полноценный указатель на память,а не ООП изврат
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
16.10.2014, 23:41 #9
yotsi, в таком случае рекомендую Вам вернуться в С
0
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 111
17.10.2014, 15:46  [ТС] #10
1.Что есть "экзекутор" ?
2.Что если потоков несколько?
3.Не вижу абсолютной никакой связи между данными в классе потока и этим "Future".
ЗЫ: вообще самый непонятный пример по "Callable" что я когда либо видел.
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
17.10.2014, 15:48 #11
yotsi, загляните в соседнюю тему

Добавлено через 51 секунду
Цитата Сообщение от yotsi Посмотреть сообщение
1.Что есть "экзекутор" ?
механизм исполнения и контроля потоков

Цитата Сообщение от yotsi Посмотреть сообщение
2.Что если потоков несколько?
На здоровье
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
17.10.2014, 16:52 #12
yotsi, Future это и есть результат выполнения потока, только он пуст пока поток работу не завершит.
0
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 111
17.10.2014, 17:40  [ТС] #13
Цитата Сообщение от KillAndEat Посмотреть сообщение
Future это и есть результат выполнения потока, только он пуст пока поток работу не завершит.
так а return в каком месте потока делать то?
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
17.10.2014, 18:56 #14
yotsi, в конце метода call()
0
yotsi
0 / 0 / 0
Регистрация: 12.08.2014
Сообщений: 111
18.10.2014, 18:07  [ТС] #15
Цитата Сообщение от KillAndEat Посмотреть сообщение
в конце метода call()
Для какого случая?
Handlers,AsyncTask,Thread
???

Добавлено через 22 часа 27 минут
так как можно, например отсюдого:
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
class GenArr extends Thread
{
    private int arSZ;
    private int min;
    private int max;
    private int []aRR;
    Random r;
    public GenArr(int arSz,int MIN,int MAX)
    {
        this.arSZ=arSz;
        this.min=MIN;
        this.max=MAX;
        this.aRR=new int[this.arSZ];
    }
    @Override
    public void run()
    {
        this.r = new Random();
        this.r.setSeed(System.currentTimeMillis());
        for(int i=0;i<this.arSZ;i++)
        {
            this.aRR[i]=this.r.nextInt(max - min) + min;
        }
    }
}
Вывести результат работы потока?
0
18.10.2014, 18:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2014, 18:07
Привет! Вот еще темы с ответами:

Как забрать данные из необычной формы? - PHP
Вот такая форма: http://i.imgur.com/hr1MeVQ.png Не получается забрать из неё данные. Вот что пробывал поставить: $Login = $_POST'];...

Как забрать данные из веб сервиса в SplitView или в storyboard - Objective-C
Есть следующая задача - необходимо забрать данные из веб сервиса, далее в зависимости от типа сообщения открывать разные view. Если есть...

Как забрать данные на IIS сервер с локальной машины по dial up? - C# ASP.NET
Не соображу, как решить задачу. Допустим, на локальном компьютере есть данные в формате mdb (например, data.mdb). С этого компьютера по...

Как узнать, что есть данные для ввода, которые можно забрать std::cin - C++
Всем здравствуйте! У меня есть параллельный поток, в котором нужно собирать данные с помощью std::cin. Но чтобы произвести эту...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.