多線程簡單實例

線程:

線程,有時被稱爲輕量級進程(Lightweight Process,LWP),是程序執行流的最小單元。

一個標準的線程由線程ID當前指令指針(PC)寄存器集合堆棧組成。

線程是進程中的一個實體,是被系統獨立調度和分派的基本單位,線程自己不擁有系統資源,只擁有一點兒在運行中必不可少的資源,
但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。

一個線程可以創建和撤消另一個線程,同一進程中的多個線程之間可以併發執行。由於線程之間的相互制約,致使線程在運行中呈現
出間斷性。

線程也有就緒、阻塞和運行三種基本狀態。

每一個程序都至少有一個線程,若程序只有一個線程,那就是程序本身。

線程是程序中一個單一的順序控制流程。進程內一個相對獨立的、可調度的執行單元,是系統獨立調度和分派CPU的基本單位指運行中
的程序的調度單位。

在單個程序中同時運行多個線程完成不同的工作,稱爲多線程

多線程

    具有多線程能力的計算機因有硬件支持而能夠在同一時間執行多於一個線程,進而提升整體處理性能。具有這種能力的系統包括對稱多處理機、
    多核心處理器以及芯片級多處理(Chip-level multithreading)或同時多線程(Simultaneous multithreading)處理器。

代碼例:

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

void process(void *p)
{
    int *px = (int *)p;

    char str[10] = { 0 };
    sprintf(str, "線程%d啓動", *px); //打印字符串進字符數組

    MessageBoxA(0, str, "多線程實例", 0);
}


void main(void)
{

    for(int i=0; i<5; i++)
    {
        _beginthread(process, 0, &i);
        Sleep(10); //創建線程需要時間,否則出現多個線程創建共用一次循環中的i值
    }

    system("pause");
}

運行結果:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章