Что такое Потоки (Что такое Поток)?

После набора исследования и экспериментирования, я нашел ответ.

  • Для записи, текущий выпуск nUnit 2.5 Alpha не делает , кажется, содержат шаблоны для тестовых проектов в Visual Studio 2008.
  • я следовал за направлениями здесь , которые описывают, как создать Ваши собственные шаблоны проекта и затем добавить соответствующие ключи реестра, которые позволяют Вашим шаблонам появляться в выпадающем поле в диалоговое окно Create Unit Test Project проекта MVC.

От высокого уровня, что необходимо сделать:

  1. Создают проект
  2. Экспорт это как шаблон (который приводит к единственному архиву ZIP)
  3. Копия это от шаблонной папки локального пользователя до Visual Studio, основная шаблонная тестовая папка
  4. Выполняет devenv.exe / установка
  5. Выполнение regedit и создает несколько ключей реестра.

Так для выбора среды тестирования, являющегося легким! Хотя, чтобы быть справедливым MVC еще даже не бета.

, В конце концов, что, я действительно заставлял предпочтительную платформу (NUnit) обнаруживаться в выпадающем поле. Однако было все еще немного оставленное быть желаемым:

  • , Хотя тестовый проект правильно создается, он автоматически не имел ссылки проекта к основному проекту MVC. При использовании Модульный тест Visual Studio как тестовый проект, это автоматически делает это.
  • я пытался открыть произведенный zip-файл и отредактировать файл MyTemplate.vssettings, а также .csproj файл проекта, чтобы исправить вышеупомянутую проблему, а также настроить названия вещей, таким образом, они будут казаться более удобными для пользователя. Это по некоторым причинам не работает. Произведенный zip-файл не может быть обновлен через WinZip или Победу-Rar - каждый указывает, что архив коррумпирован. Каждый может извлечь содержание, все же. Так, я пытался обновить извлеченные файлы и затем воссоздать zip-файл. Visual Studio не нравился он.

Так, я должен, вероятно, читать это также, который обсуждает шаблоны проекта создания для Visual Studio (также ссылаемый в сообщении в блоге, которое я связал с вышеупомянутым.) Я признаюсь, что был разочарован хотя; от всего разговора о MVC, играющем хорошо с другими средами тестирования, и т.д., я думал, что будет легче зарегистрировать стороннюю платформу.

7
задан MikeTheLiar 25 March 2015 в 15:29
поделиться

5 ответов

Простым объяснением было бы то, что у вас есть работа, и вы заставляете одного человека делать эту работу.

Этот единственный человек похож на поток в компьютере.

Один человек может делать одно дело за раз, поэтому, чтобы выполнить задание, он выполняет задачи задания, по одной задаче за раз, по одной операции над каждой задачей за раз.

Чтобы ускорить работу , вы можете привлечь к одной работе больше людей. Например, вам нужно покрасить дом. Вы нанимаете для этого 4 человек.

Эти 4 человека могут быть похожи на 4 потока в том, что они работают с одними и теми же ресурсами (тот же дом, те же ведра с краской), и они могут разделить работу.

Процесс было бы похоже на работу по покраске этого дома.

Это простое объяснение несколько не работает, когда речь идет о машинах, которые не окрашивают этот дом.

7
ответ дан 6 December 2019 в 10:52
поделиться

В википедии есть хорошая страница: http: //en.wikipedia. org / wiki / Thread_% 28computer_science% 29

краткое описание: поток - это легкий процесс

Если вы используете потоки,

0
ответ дан 6 December 2019 в 10:52
поделиться

Рискуя излишне упрощать:

Поток - это строка выполнения программы.

В вашей базовой модели программирования компьютер просто отслеживает в вашей программе один оператор за время, и в любой момент времени, только одно утверждение исключается. Если ваша программа разветвляется или вызывает другую процедуру, выполнение покинет место, где передано управление, и начнется выполнение в другом месте, но все же в любой момент времени выполняется только одно действие.

С потоками может быть несколько линий управления выполняются одновременно. Например, одна часть вашей программы может взаимодействовать с пользователем, а другая часть загружает файл в фоновом режиме. Многопоточные программы намного сложнее программировать, и гораздо труднее представить себе, как они работают.

2
ответ дан 6 December 2019 в 10:52
поделиться

Отдельный поток назван так, потому что это единственный поток выполнения через ваш код. Если у вас есть несколько потоков, у вас есть несколько потоков выполнения через ваш код одновременно (или одновременно, как поддерживает ваша одно- / многоядерная система). Оба потока имеют доступ к одной и той же куче, но используют разные стеки. Это означает, что данные в вашей программе могут быть видны обоими потоками и могут быть изменены любым потоком. Это, конечно, может привести к серьезным проблемам, требующим защиты от.

Стоит отметить, что поток отличается от процесса. Ключевое различие заключается в том, что два потока могут получить доступ к одним и тем же данным (куче), а два процесса - нет.

Более полное описание см. В других онлайн-описаниях

wikipedia

2
ответ дан 6 December 2019 в 10:52
поделиться

То, что никто не удосужился объяснить мне, - это разница между процессом и потоком. Как только вы поймете это, то, где подходят потоки, становится понятным.

Операционная система предоставляет процессам память для использования. Процесс при запуске обычно имеет один «поток», работающий внутри него.

Поток - это то, что операционная система планирует запускать на ЦП, и ему дается адрес, с которого можно начать выполнение инструкций.

Некоторые люди, которые были намного умнее меня, пришли к выводу, что создание процессов в большинстве операционных систем намного дороже, чем создание потока выполнения. Кроме того, два потока в одном процессе имеют возможность доступа к памяти процессов без использования для этого вызова операционной системы и / или общей памяти, а это означает, что, хотя теперь вам нужно синхронизировать доступ к памяти потоков, вы могли бы выполнять больше работы с меньшими затратами. время.

Таким образом, многопоточность - это важная концепция, которую необходимо понять, и ее основное использование заключалось в повышении производительности программ, которые имели параллелизм, который можно было эксплуатировать, причем первое основное использование (РЕДАКТИРОВАТЬ: это могло быть не «первое» использование). графический пользовательский интерфейс приложения в одном потоке и выполнение обработки в другом, что является краеугольным камнем современного дизайна пользовательского интерфейса.

Кроме того, два потока в одном процессе имеют возможность доступа к памяти процессов без использования для этого вызова операционной системы и / или общей памяти, а это означает, что, хотя теперь вам нужно синхронизировать доступ к памяти потоков, вы могли бы выполнять больше работы с меньшими затратами. время.

Таким образом, многопоточность - это важная концепция, которую необходимо понять, и ее основное использование заключалось в повышении производительности программ, которые имели параллелизм, который можно было эксплуатировать, причем первое основное использование (РЕДАКТИРОВАТЬ: это могло быть не «первое» использование). графический пользовательский интерфейс приложения в одном потоке и выполнение обработки в другом, что является краеугольным камнем современного дизайна пользовательского интерфейса.

Кроме того, два потока в одном процессе имеют возможность доступа к памяти процессов без использования для этого вызова операционной системы и / или общей памяти, а это означает, что, хотя теперь вам нужно синхронизировать доступ к памяти потоков, вы могли бы выполнять больше работы с меньшими затратами. время.

Таким образом, многопоточность - это важная концепция, которую необходимо понять, и ее основное использование заключалось в повышении производительности программ, которые имели параллелизм, который можно было эксплуатировать, причем первое основное использование (РЕДАКТИРОВАТЬ: это могло быть не «первое» использование). графический пользовательский интерфейс приложения в одном потоке и выполнение обработки в другом, что является краеугольным камнем современного дизайна пользовательского интерфейса.

Это означает, что, хотя теперь вам нужно синхронизировать доступ к памяти потоков, вы можете выполнять больше работы за меньшее время.

Таким образом, многопоточность - это важная концепция, которую необходимо понять, и ее основное использование заключалось в повышении производительности программ, которые имели параллелизм, который можно было эксплуатировать, причем первое основное использование (РЕДАКТИРОВАТЬ: это могло быть не «первое» использование). графический пользовательский интерфейс приложения в одном потоке и выполнение обработки в другом, что является краеугольным камнем современного дизайна пользовательского интерфейса.

Это означает, что, хотя теперь вам нужно синхронизировать доступ к памяти потоков, вы можете выполнять больше работы за меньшее время.

Таким образом, многопоточность - это важная концепция, которую необходимо понять, и ее основное использование заключалось в повышении производительности программ, которые имели параллелизм, который можно было эксплуатировать, причем первое основное использование (РЕДАКТИРОВАТЬ: это могло быть не «первое» использование). графический пользовательский интерфейс приложения в одном потоке и выполнение обработки в другом, что является краеугольным камнем современного дизайна пользовательского интерфейса.

7
ответ дан 6 December 2019 в 10:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: