多线程简单实例

线程:

线程,有时被称为轻量级进程(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");
}

运行结果:

这里写图片描述

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