crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> C++, многопоточность, linux
vankleef
  опции профиля:
сообщение 25.11.2010, 1:18
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 74
Регистрация: 21.10.2010
Пользователь №: 2134

Спасибо сказали: 9 раз(а)




Репутация:   1  


Имеется простая программа-пример:

#include <iostream>
#include <pthread.h>
#include <semaphore.h>

using namespace std;

void *niggers(void *arg){
    int local=*(int *)arg;    
    for(int i=0;i<100;i++){
        cout<<local<<endl;
    }
}

int main(int argc, char** argv) {
    int n1=1,n2=2;
    pthread_t t1,t2;
    pthread_create(&t1,NULL,niggers,&n1);
    pthread_create(&t2,NULL,niggers,&n2);

    pthread_join(t1,NULL);
    pthread_join(t2,NULL);
    return 0;
}


Компилирую с ключем -lpthread.
При выводе результата получается следующее: сначала выводится результат одного потока, потом-второго, а не вперемешку.

Как можно сделать чтобы один поток дал процессорное время другому?
Компилировал подобный код в уиндовсе с помощью gcc там вывод нормальный-вперемешку.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 20.4.2024, 13:29