一起talk C栗子吧(第一百二十二回:C语言实例--多线程)


各位看官们,大家好,上一回中咱们说的是线程知识体系图的例子,这一回咱们说的例子是:多线程。闲话休提,言归正转。让我们一起talk C栗子吧!

看官们,我首先给大家拜个晚年,祝大家在新的一年里身体健康,万事如意。

今天我们介绍一下多线程,我相信大家都听过这个名词,但是具体的含义是什么呢?其实多线程是指两个或者两个以上的线程在一起运行,他们共同完成某个工作。

我们在前面的章回中介绍过使用pthread_create()函数去创建线程。如果想使用多线程,那么只需要多次使用该函数去创建线程就可以。接下来我们举例子来说明。

下面是核心的代码:

    while(count > 0)
    {
        switch(count)
        {
        case 1:
            strcpy(param, "This is Thread:1");
            break;
        case 2:
            strcpy(param, "This is Thread:2");
            break;
        case 3:
            strcpy(param, "This is Thread:3");
            break;
        case 4:
            strcpy(param, "This is Thread:4");
            break;
        case 5:
            strcpy(param, "This is Thread:5");
            break;
        default:
            break;
        }

        res = pthread_create(&thread_value,NULL,thread_func,(void *)param);
        if(0 != res)
        {
            printf("%s ,it can't be created \n",param);
            return 1;
        }

        sleep(1);
        count--;
    }

我们在代码中给count赋值为5,然后通过循环语句来创建线程,这样就可以创建5个线程。另外,这些线程共享一个线程函数,只是传递给该函数的参数不同。下面是该函数的的代码,请大家参考:

void *thread_func(void *param)
{
    int status;

    printf("%s \n",(char *)param);

    pthread_exit(&status); // end the thread
}

函数只是简单地输出参数中的内容,用来表明不同的线程在运行,然后就结束线程。

看官们,正文中就不写代码了,完成的代码放到了我的资源中,大家可以点击这里下载使用。

下面是程序的运行结果,请大家参考:

Create multi  thread 
This is Thread:5  //第五个线程在运行
This is Thread:4  //第四个线程在运行 
This is Thread:3  //第三个线程在运行 
This is Thread:2  //第二个线程在运行 
This is Thread:1  //第一个线程在运行 

各位看官,关于多线程的例子咱们就说到这里。我们只是简单地介绍如何去创建多线程,其实最麻烦的是如何去调度多个线程。因为线程的调度会涉及到操作系统相关的知识,因此,暂时先不做介绍。我们以后有机会了会给大家介绍多线程调度的知识。欲知后面还有什么例子,且听下回分解 。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值