Как я могу создать тему в Unix? - PullRequest
       30

Как я могу создать тему в Unix?

4 голосов
/ 09 сентября 2010

Как создать поток в Unix-программировании?

В чем разница между разветвлением и многопоточностью?

Потоковость полезнее, чем разветвление?

Ответы [ 4 ]

4 голосов
/ 09 сентября 2010

Каждый обычно использует потоки POSIX или какую-либо другую технологию, обернутую его API.Форкинг запускает новые процессы, а поток разделяет существующий процесс на части.Потоки приводят к общему глобальному состоянию, которое может или не может быть полезным, учитывая конкретные обстоятельства.

3 голосов
/ 09 сентября 2010
  1. pthread_create()

  2. Форкинг создает два процесса, каждый из которых имеет отдельный поток управления. Создание потока создает дополнительный поток управления внутри одного процесса.

  3. Нет - как правило, правильные многопоточные приложения сложнее понять, чем отдельные процессы. И с большим отрывом.

2 голосов
/ 09 сентября 2010

Форкинг создает копию текущего процесса, в то время как потоки выполняются в одном и том же процессе и обычно используются для вычисления чего-либо в фоновом режиме, поэтому приложение не кажется замороженным.

Что касается полезности потоков и разветвления, я бы пошел с потоками, если у вас нет особой необходимости во втором процессе.

Что касается создания потока, я бы рекомендовал использовать библиотеку pthreads. Он будет работать в любой операционной системе UNIX (Linux, BSD, Mac OS X), но находится на относительно низком уровне. Если вы хотите что-то более высокого уровня, посмотрите QThread из QT.

0 голосов
/ 31 декабря 2013

1. В ядре Fork выделены все ресурсы и память.

2. В потоке разделен процесс и распределена память процесса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...