Разница process и thread
Скажите пожалуйста какая разница между process и thread
Процессы независимы друг от друга, каждому из них соответствует исполняемый файл (по крайней мере, в винде). Запусти несколько экземпляров своей проги -- вот тебе и несколько процессов. В винде, IMHO, обмен данными между нитями происходит быстрее, чем между процессами.
Где ошибся, всезнающий Олл меня поправит.
Цитата: Plisteron
Где ошибся, всезнающий Олл меня поправит.
Ага, по поводу того, что всем процессам соответствует свой исполняемый файл. Процес то может порождаться из другого процесса. И в винде и не в ней. Но процессы действительно независимы, имеют собственно адресное пространство и уникальный ID в системе - из можно отдельно друк от друга увидеть средствами ОС.
Цитата: Plisteron
В винде, IMHO, обмен данными между нитями происходит быстрее, чем между процессами.
Ну так естественно - thread-ы работают с общей памятью и через нее могут возаимодейстовать (переменные, вызовы функций)
А процессы взаимодействуют через внешние средства ОС.
В этом случае значит процесс детя зависим от родителя.А как тогда сохранить принцип уникальности.
Последний вопрос как можно узнать ID какого нибудь процесса?
Заранее благодарен...
Процесс (process), не смотря на его название, ничего сам не делает, он лишь владеет ресурсами. Операции же выполняют треды (thread), которые принадлежат процессу.
Цитата: Plisteron
Процессы независимы друг от друга, каждому из них соответствует исполняемый файл (по крайней мере, в винде).
Это не совсем так. Процесс - это системный объект, который может быть создан и без привязки к какому-либо исполняемому файлу (в т.ч. и в винде).