Что такое нить (Java, Android)?

1

Может ли кто-нибудь дать мне "простое" определение темы Thread in android. Я прочитал определение на Android-сайте, но мне это очень трудно представить!

  • 0
    Можете быть более конкретными? Что ты не можешь себе представить?
  • 3
    Поток на Android такой же, как поток на любой другой платформе / языке программирования. Возможно, Википедия поможет вам начать темы.
Показать ещё 3 комментария
Теги:
multithreading

3 ответа

2
Лучший ответ

Похоже, вы могли бы использовать пример полу реального мира. Google раскрыл эту удобную запись в блоге.

Для общей ссылки (как предлагалось mikem) см. Википедию: Thread. Темы практически одинаковы во всех средах.

2

Нить лучше всего представить, изображая нить (lolz). Допустим, вы сделали программу, чтобы показать текст на экране. Теперь, когда вы запускаете программу, все выполнение кода происходит на одной воображаемой строке (поток).

Теперь вы расширяете свою программу, чтобы разместить новую строку текста на экране каждые 10 секунд. У вас есть несколько вариантов:

1: Сделайте цикл while и внутри цикла, покажите текст и сделайте выполнение остановки программы (спящего режима) в течение 10 секунд. Неприятный побочный эффект заключается в том, что вы не можете взаимодействовать со своей программой вообще в течение каждых 10 секунд (потому что нить спала). Это не то, что вы хотите:)

2: Создайте новый поток с циклом while, который отображает текст на экране и заставляет поток спать каждые 10 секунд. Теперь, когда этот второй поток спал в течение 10 секунд, вы все равно можете взаимодействовать с первым основным потоком:)

Учебник: http://www.javabeginner.com/learn-java/java-threads-tutorial

Удачи, может ли источник быть с вами.

0

Модели потоков для Android немного разные, так как они рекомендуют использовать AsyncTask. Прочитайте документацию AsyncTask. Это как нить.

  • 0
    Такие функции часто встречаются, поскольку потоки могут быть трудно использовать должным образом - .Net имеет свой BackGroundWorker, который по сути является классом-оболочкой для потока, который абстрагирует некоторые детали управления потоками. При этом упрощение потоков таким образом также усложняет выполнение некоторых более сложных задач: AsyncTask может быть создан только в основном потоке пользовательского интерфейса и может быть запущен только один раз. Все зависит от того, чего вы пытаетесь достичь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню