2009-12-24 3 views

ответ

8

тему представляет собой легкий процесс веса. Нить может быть свободно определена как отдельный поток исполнения, который происходит одновременно и независимо от всего остального, что может произойти. Поток похож на классическую программу, которая начинается в точке A и выполняется до тех пор, пока не достигнет точки B. В ней нет цикла событий. Нить работает независимо от всего, что происходит на компьютере. Без потоков вся программа может поддерживаться одной интенсивной задачей ЦП или одним бесконечным циклом, преднамеренным или иным образом. В потоках другие задачи, которые не застревают в цикле, могут продолжить обработку, не дожидаясь завершения застрявшей задачи. Пожалуйста, перейдите по этой ссылке для получения более подробной информации и ее сравнения с процессом.

http://en.wikipedia.org/wiki/Thread_(computer_science)

Создание нить очень легко для примера пройти через это ....

Это очень пример, который создает нить т.е. ThreadFun1

#include<windows.h> 
#include<stdio.h> 
#include<conio.h> 

void __stdcall ThreadFun1() 
{ 
    printf("Hi This is my first thread.\n"); 
} 
void main() 
{ 
    printf("Entered In Main\n"); 
    HANDLE hThread; 
    DWORD threadID; 
    hThread = CreateThread(NULL, // security attributes (default if NULL) 
          0, // stack SIZE default if 0 
          ThreadFun1, // Start Address 
          NULL, // input data 
          0, // creational flag (start if 0) 
          &threadID); // thread ID 
    printf("Other business in Main\n"); 
    printf("Main is exiting\n"); 
    CloseHandle(hThread); 
    getch(); 
} 
+0

Как создать два потока? – 2009-12-28 08:05:51

+0

, который вызывает ту же функцию? – 2009-12-28 08:13:30

+0

так же, вы просто вызываете CreateThread снова –

1

Нить - это контекст, который в настоящее время занимает процессор и является частью, запланированной Windows CE.

Чтобы создать поток, используйте CreateThread. Вы можете прочитать о более поточных и технологических функциях here.

Эти данные верны для Windows CE 6.

3

Дон 't используйте CreateThread(), используйте _beginthreadex() вместо этого, если вы пишете программы на C/C++.

_beginthreadex() инициализирует среду выполнения C/C++, но CreateThread() не будет.

+1

хороший ответ, но почему не используйте 'CreateThread' ?? – AminM

0

Все эти ответы предлагают использовать CreateThread()

Это просто бедные советы.

Нитки должны обычно создаваться с помощью _beginthread() или _beginthreadex(), чтобы гарантировать, что поточно-локальные структуры среды выполнения C/C++ соответствующим образом инициализированы.

Смотрите обсуждение по этому вопросу для получения более подробной информации: Windows threading: _beginthread vs _beginthreadex vs CreateThread C++

+2

Это было бы правдой, это была полная ОС Windows.К сожалению, OS стоит вопрос Windows CE. У него нет '_BeginThread'. – Shaihi

+0

@Shaihi, вопрос не указывает Windows CE как ограничение на ответ. –

+0

"polyglot - но он делает это, так как он помечен как' Windows CE' – Shaihi

Смежные вопросы