Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
FuKingBrain
52 / 51 / 3
Регистрация: 29.11.2010
Сообщений: 132
#1

Потоки - C++

20.02.2011, 09:07. Просмотров 418. Ответов 0
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
int b[2]={0,0}; 
int sum=0;
 
 
void enterCS3(int p)
{
    MemoryBarrier();
    b[p]=1;
    MemoryBarrier();
    while(b[1-p])
    {       
        MemoryBarrier();
        b[p]=0;
        Sleep(rand()%10);
        MemoryBarrier();
        b[p]=1;
    }
}
 
void leaveCS3(int p)
{
    MemoryBarrier();
    b[p]=0;
}
 
DWORD WINAPI Thread3(void*p)
{
    for(int i=0;i<10000000;i++)
    {
        enterCS3(1);
        MemoryBarrier();
        sum++;
        char buf[100];
        itoa(sum, buf, 10);     
        buf[0]='1';
        buf[1]='_';
        printf("%s\n",buf);     
        leaveCS3(1);
    }
    return 0;
}
 
DWORD WINAPI Thread3_4(void*p)
{
    for(int i=0;i<10000000;i++)
    {
        enterCS3(1);
        MemoryBarrier();
        sum++;
        char buf[100];
        itoa(sum, buf, 10);     
        buf[0]='2';
        buf[1]='_';
        printf("%s\n",buf);
        leaveCS3(1);
    }
    return 0;
}
 
int main()
{
    HANDLE h; // указатель на поток, семафор, мьютекс и пр.
    HANDLE h1;
    h=CreateThread(NULL,0,Thread3,NULL,0,0); 
    h1=CreateThread(NULL,0,Thread3_4,NULL,0,0); 
}
Вопрос к знатокам:
В каком случае вероятность появлении ошибки:
1. Если в процедуре enterCS3 стоит Sleep(rand()%10);
2. Если в процедуре enterCS3 стоит Sleep(10);

Моё мнение такого что при Sleep(10); потоки ни когда не пересекутся и будут работать параллельно. Если же будет написано Sleep(rand()%10); то вероятность пересечения есть. Прав ли я? И можно как-нибудь создать такой пример чтоб потоки пересеклись?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2011, 09:07
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Потоки (C++):

Что такое потоки ввода, потоки вывода? - C++
Здарова всем! Не так давно уже прогаю на С++ и все НИКАК не могу понять, что такое потоки ввода, потоки вывода..! вот допустим...

Потоки - C++
Пытаюсь создать поток #include&lt;windows.h&gt; #include&lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;process.h&gt; #include &lt;fstream&gt; using...

Потоки - C++
Пару вопросов про потоки... 1. Открывается поток, в нем запускается еще один... потоки отсоединяются, как закрыть дочерний поток когда...

потоки.. - C++
Доброго всем времени суток. При написании программы я столкнулся с проблемой, решение которой, по словам друзей, лежит в потоках. проблема...

Потоки - C++
Я нашел в интернете отличную статью про потоки и многопоточность и на её основе написал следующую программу: #include &quot;stdafx.h&quot; ...

потоки - C++
1---------------------------------------------------------------------------------------------------------- Можно ли перенаправить потоки...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2011, 09:07
Привет! Вот еще темы с ответами:

Потоки - C++
Задание: 1.Отображение списка запущенных потоков. 2.Создание нового потока по запросу пользователя.(это у меня сделано и работает) ...

Потоки - C++
Кто может скинуть какую-нибуть хорошую статью по ПОТОКАМ? читал про них в книге Шилдт &quot;С++ Базовый курс&quot;, но мало что понял((

Потоки - C++
Здравствуйте, помогите пожалуйста преподаватель сказал нужно добавить код в третьем потоке(thread3), чтобы событие не происходила пока не...

Потоки в C++ - C++
Господа, можете посоветовать хорошую книгу по потокам в C++ или мануалы какие-то что ли ? Не советуйте материал найденный в поисковике,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru