Я испытал Комодо немного, и мне действительно нравится он до сих пор. Aptana, вариант Eclipse, также довольно полезен для большого разнообразия вещей. Всегда существует хороший ole' VI, также!
Study regarding pthread, mutexes and try to implement same that will be beneficial for you.
http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html
Если вы хотите изучить подробности, попробуйте прочитать Расширенное программирование в среде UNIX . или начните с Компьютерные системы: взгляд программиста .
Learning multi threading programming has two parts:
Learning multi-threaded programming is harder, thre's a good article published in the Linux Journal that will help you understand the basic principles.
To better understand pThreads I suggest reading this tutorial - POSIX Threads Programming
There is also a good book by O'rielly called PThreads Programming
Может быть, немного спорный, но на самом деле Многопоточность cklicked для меня, когда я пытался решить загадку кодирования один раз.
Загадка заключалась в написании поточно-безопасного кода без использования мьютексов. Мои первые попытки были неудачными, но когда я наконец получил это, это было похоже на обучение катанию на велосипеде - с тех пор я никогда не чувствовал себя неуверенным в параллелизме.
Иногда я даже наткнулся на программистов, которые читали книги по субъект, но не понимает простых вещей, таких как тот факт, что примитивное присваивание иногда не может быть атомарной операцией.
Если вы только начинаете работать с многопоточностью, я бы посоветовал сначала изучить и лучше понять ввод-вывод в вашей системе. Разберитесь с блокирующим и неблокирующим вводом-выводом, сигнализацией, асинхронными подпрограммами, обратными вызовами и так далее. Ввод-вывод, вероятно, является одной, если не основной, причиной добавления многопоточности в ваши программы. Обладая этими знаниями, вы можете взять книгу о потоках pthreads или java, или сосредоточиться на библиотеке потоков Boost или другой библиотеке потоков для вашей любимой технологии.
Все зависит от ваших целей. Существует множество кода и статей с общими проблемами многопоточности, решенными на основе фреймворка потоков POSIX (я вижу здесь ряд рекомендаций хороших статей). Главный вопрос - что вы хотите построить. Для некоторых задач вообще не рекомендуется использовать многопоточность.
Вот книга « Основы многопоточного, параллельного и распределенного программирования », которая относится к обсуждаемой теме и которую я бы хотел рекомендовать. Самым значительным преимуществом этого метода является «относительно легко читаемый» стиль, но без жесткой привязки к идеологии потоков POSIX (что является общей проблемой).
I think that the Wikipedia article Multithreading give you a quick overview and by following the external links you'll get a good overview of the topic. After that - or additionally - you could read Tanenbaum's Operating Systems: Design and Implementation (great book by the way). But the most important thing is - in my opinion - to get your hands on it. So just download a sample application from... let's say The Code Project or whatever website you'll find and play around with it. See how the application differs if you use locks or what happens if two threads try to access the same resource and how often this will occur, etc. By that I think you'll get the hang of it pretty quickly. And it's fun to evaluate and play around with techniques that are new to oneself.
Еще кое-что, что можно попробовать: http://www.threadingbuildingblocks.org
Изучение различных библиотечных структур и средств операционной системы - хороший способ понять низкоуровневый параллелизм. Примеры, которые вы найдете там, могут помочь вам начать писать параллельный код за короткий промежуток времени.
После того, как вы отладите свой путь через несколько тупиковых ситуаций и проблемы с повреждением общей памяти, вы обнаружите, что вам нужны некоторые инструменты для анализа и декомпозиции вашего проблемы параллелизма. Мне лично нравится Херб Саттер ' s The Pillars of Concurrency статья в качестве отправной точки. Идея состоит в том, чтобы лучше понять, зачем вам нужен параллелизм. Вы ищете улучшенное время отклика, параллельные вычисления или комбинацию причин?
Понимание «почему» приведет вас к более точному «что». Оттуда вы всегда можете перейти к различным низкоуровневым подходам: Активные объекты , контролировать объекты , передача сообщений , и т. Д. . Как вы сказали, в этой области есть что знать.
Оттуда вы всегда можете перейти к различным низкоуровневым подходам: Активные объекты , контролировать объекты , передача сообщений , и т. Д. . Как вы сказали, в этой области нужно много знать. Оттуда вы всегда можете перейти к различным низкоуровневым подходам: Активные объекты , контролировать объекты , передача сообщений , и т. Д. . Как вы сказали, в этой области нужно много знать., поскольку это UNIX, почему бы не начать с процессов и IPC-связи? то есть очереди сообщений, разделяемая память и мьютексы.
Я нашел этот учебник очень информативным и четко написанным. Надеюсь, это поможет.