Что такое поток? Как создать поток в приложении Win32? - PullRequest
3 голосов
/ 24 декабря 2009

Что такое нить? Как создать тему в приложении win32?

Ответы [ 5 ]

8 голосов
/ 28 декабря 2009

Нить - это легкий процесс. Поток можно свободно определить как отдельный поток выполнения, который происходит одновременно и независимо от всего, что может происходить. Поток похож на классическую программу, которая запускается в точке 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();
}
3 голосов
/ 06 февраля 2010

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

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

1 голос
/ 24 декабря 2009

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

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

Эта информация верна и для Windows CE 6.

0 голосов
/ 07 февраля 2010

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

Это просто плохой совет.

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

См. Обсуждение этого вопроса для получения дополнительной информации: Потоки в Windows: _beginthread против _beginthreadex против CreateThread C ++

0 голосов
/ 24 декабря 2009

Очень популярным объясняется в Википедии :)

http://en.wikipedia.org/wiki/Thread_%28computer_science%29

Как насчет того, как справиться с этим, вы можете прочитать, например,

.NET многопоточность (Алан Деннис) isbn = 1930110545

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