Обычная идиома состоит в том, чтобы определить функцию для принятия одного аргумента типа Unit (let functionName () = 42
). Затем он будет называться functionName ()
. (Тип устройства имеет только одно значение, которое равно ()
.)
Смотрите на Herb Sutter" , Бесплатный Ланч - более чем " и затем его ряд статей о Эффективный Параллелизм .
Если Вы работаете с C#, книга "C#, 2008 и 2005 распараллелили программирование", Gaston C. Hillar - Packt, Публикующий - http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book , поможет Вам. Настоятельно рекомендованный для программистов C#, потому что можно загрузить код забавными примерами, которые используют многоядерный компьютер. Книга является хорошим руководством с большим количеством кода для осуществления. Это рассказывает истории, в то время как это объясняет самые трудные понятия.
Веб-сайты производителей ЦП имеют некоторое интересное содержание:
http://developer.amd.com/documentation/articles/Pages/default.aspx#parallel
http://software.intel.com/en-us/multi-core
Также поточная обработка Intel с открытым исходным кодом библиотеки имеет некоторые хорошие ссылки:
Если Вы хотите делать попытку выполнения очень параллельной версии простой задачи или видеть действительные решения, Вы могли сделать хуже, чем взгляд широкое средство поиска проект. В основном это о том, как сделать параллель regex соответствие файлов журнала эффективно, но попытка добавить как можно меньше код.
Участники отправили решения на многих различных языках и эти , результаты проверки производительности отправляются. Исходный проект теперь закончился и существует теперь широкое средство поиска 2 принятие работы.
CodingHorror имеет пользу введение в широкое средство поиска .
Для богатой, полной обработки предмета, с хорошим балансом между информатикой и практикой, я рекомендую Искусство Многопроцессорного Программирования . Много примеров находится в объектно-ориентированном коде, т.е. Java, с другими языками, рассеянными повсюду. Это просто зависит от затронутой темы. То, что я действительно люблю в этой книге, - то, что она обсуждает, как общие алгоритмы должны быть реализованы в параллельном дизайне. Конечно, существует настолько больше!
Для общих понятий и обработки pthreads, мне действительно нравится Программирование с Потоками POSIX . Быть библиотекой и API, который это, это находится в C.
Для Windows и разработчиков C#, проверьте блог Joe Duffy. Joe работает над параллельными библиотеками, инфраструктурой и моделями программирования в Подразделении Разработчика Microsoft. У него есть книга, появляющаяся, в ноябре 2008 назвал Параллельное Программирование в Windows ( ссылка Amazon ).
кроме того, не пропускайте блог Крестного отца: Herb Sutter Фреза Sutter . У него есть ссылки на все его статьи в Журнале доктора Dobb и т.д. Нажмите его категория Concurrency .
Я думаю Повышение. Потоки являются большой библиотекой параллелизма C++ для изучения, особенно если Вы просто хотите начать в записи многопоточных приложений. Код очень сжат и легок понять плюс следующий C++, стандарт будет, вероятно, включать библиотеку поточной обработки на основе Повышения. Потоки (учебное руководство: http://www.ddj.com/cpp/184401518 )
Я не знаю то, что точно Вы ищете, но если Вы делаете разработку WindowsForms, следующее сообщение в блоге стоит каждую минуту читать: Поток WinForms UI Вызывает: Всесторонний Обзор Invoke/BeginInvoke/InvokeRequred
http://www.cilk.com/multicore-e-book/
Это - хороший общий обзор sitution, если Вы ищете tuorials и книги, могло бы быть лучше указать язык как начальную точку, таким образом, можно бездельничать с некоторым кодом.
Язык программирования Erlang обеспечивает простой в использовании стиль параллельного программирования. Вы никогда не можете на самом деле использовать Erlang, но понятия мобильны на другие языки. Вы могли бы хотеть прочитать книгу , Программируя Erlang: программное обеспечение для Параллельного Мира .
Поклонники функционального программирования утверждают, что нет никакой потребности изучить что-либо новое. Просто используйте чистый функциональный язык, и компилятор или интерпретатор автоматически параллелизируют все. Таким образом, Вы могли бы хотеть изучить Haskell, OCaml или другой функциональный язык.
Я поддерживаю linkblog для статей параллелизма, блогов и проектов в:
я обычно отправляю ссылку или два в день на множестве тем (потоки, агенты, блокировка, параллельное программирование) во множестве сред (Erlang, Java, Scala.NET, C++, Ruby, Python, и т.д.).
Для замечательного гида и ссылки для программирования параллелизма в C# (или.NET в целом) я рекомендовал бы MSDN Что статья Every Dev Must Know About Multithreaded Apps Vance Morrison на MSDN. Это содержит большую информацию о лучшей практике и протесты о разработке мультипотока
Я пишу о многопоточности и параллелизме в C++ на мой блог . Я также пишу книгу по параллелизму в C++: Параллелизм C++ в Действии .
Я читал (большая часть) Параллелизм Java на практике Brian Goetz, который очень хорош.
существует, очевидно, основанная на Java тема, пробегающая книгу (использующий Java определенные реализации потоков, блокировки и т.д.), но в значительной степени все принципы могут быть применены к другим языкам.
домашняя страница автора содержит список статей , он записал, некоторые из которых включают поточную обработку связанный материал. Возможно, запустите там и если Вы любите его стиль, покупаете книгу.
Я честно никогда не читал его сам, но , Параллельное Программирование в Java является книгой, которую я услышал рекомендуемый несколькими людьми.
Joseph Albahari записал хороший обзор Поточной обработки в C# здесь:
Это - конкретный Delphi, но никакая причина, почему понятие не относилось бы ни к какому другому языку!
по Поточной обработке