`
jakielong
  • 浏览: 229464 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux c的多线程编程实例

阅读更多


 通过创建两个线程来实现对一个数的递加。
或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。

#include <pthread.h>
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#include <unistd.h>
#define MAX 10
pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;
void *thread1(void *)
{
        printf ("thread1 : I'm thread 1\n");
        for (i = 0; i < MAX; i++)
        {
                printf("thread1 : number = %d\n",number);
                pthread_mutex_lock(&mut);
                        number++;
                pthread_mutex_unlock(&mut);
                sleep(2);
        }
        printf("thread1 :the main function is waiting for me?\n");
        pthread_exit(NULL);
}
void *thread2(void *)
{
        printf("thread2 : I'm thread 2\n");
        for (i = 0; i < MAX; i++)
        {
                printf("thread2 : number = %d\n",number);
                pthread_mutex_lock(&mut);
                        number++;
                pthread_mutex_unlock(&mut);
                sleep(3);
        }
        printf("thread2 :the main function is waiting for me? \n");
        pthread_exit(NULL);
}
void thread_create(void)
{
        int temp;
        memset(&thread, 0, sizeof(thread));          //comment1
        /*Create thread*/
        if((temp = pthread_create(&thread[0], NULL, thread1, NULL)) != 0)       //comment2
                printf("Thread 1 fail to create!\n");
        else
                printf("Thread 1 created!\n");
        if((temp = pthread_create(&thread[1], NULL, thread2, NULL)) != 0)  //comment3
                printf("Thread 2 fail to create!");
        else
                printf("Thread 2 created!\n");
}
void thread_wait(void)
{
        /*Wait thread end*/
        if(thread[0] !=0) {                   //comment4
                pthread_join(thread[0],NULL);
                printf("Thread 1 completed\n");
        }
        if(thread[1] !=0) {                //comment5
                pthread_join(thread[1],NULL);
                printf("Thread 2 completed.\n");
        }
}
int main()
{
        /*init mutex*/
        pthread_mutex_init(&mut,NULL);
        printf("Main function,creating thread...\n");
        thread_create();
        printf("Main function,waiting for thread end....\n");
        thread_wait();
        return 0;
}

 

下面是运行结果:



 

  • 大小: 13.3 KB
0
1
分享到:
评论

相关推荐

    Linux下C语言多线程编程实例

    Linux 下 C 语言多线程编程实例 Linux 下的多线程编程是一种非常重要的技术,在实际应用中有非常广泛的应用范围。多线程编程可以大大提高程序的执行效率和响应速度。但是,多线程编程也存在一些复杂性,例如线程...

    linux下C语言多线程编程实例

    在Linux环境下进行C语言多线程编程,可以利用POSIX线程库,也称为pthread库。这个库提供了创建、同步和管理线程的一系列接口,使得开发者能够在单个进程中同时执行多个任务,从而提高程序的并行性。下面将详细探讨多...

    linux下C语言多线程编程实例.pdf

    linux下C语言多线程编程实例.pdf

    C语言多线程编程实例.pdf

    标题中的“C语言多线程编程实例”直接指出了文档的主题内容,即围绕C语言编程中多线程编程技术的实例讲解。多线程是编程中的一项关键技术,能够允许程序同时执行多个线程,提高程序的运行效率和响应速度。 描述部分...

    linux C 多线程编程典型实例

    本实例集主要针对Linux环境下的C语言多线程编程,旨在帮助开发者深入理解和实践多线程的创建、同步、通信以及管理等关键概念。 1. **线程创建**: 在Linux中,多线程通常通过POSIX线程库(pthread)实现。`pthread...

    linux下C语言多线程编程实例[归纳].pdf

    linux下C语言多线程编程实例[归纳].pdf

    linux下C语言多线程编程实例.docx

    通过这个简单的实例,我们可以了解到Linux下C语言多线程编程的基本框架,包括线程的创建、同步和结束。然而,在实际应用中,还需要考虑更复杂的情况,如线程优先级、线程局部存储、信号量、条件变量等高级同步机制。...

    linux下C语言多线程编程实例.doc

    在Linux环境下,C语言多线程编程是一种常见的并发处理方式,它允许程序同时执行多个任务,提高系统资源利用率和程序执行效率。本文将通过一个简单的实例来介绍如何在Linux下使用C语言进行多线程编程。 首先,我们要...

    C语言多线程编程实例.docx

    总的来说,这个C语言多线程编程实例展示了如何在Linux环境下创建、同步和管理线程,以及如何利用互斥锁解决并发访问共享资源时的冲突问题。这个基本的实例可以作为进一步学习多线程编程的基础,通过修改和扩展,可以...

    Linux多线程 C语言编程关于多线程

    本文介绍了在Linux环境下进行多进程和多线程编程的基础知识。多进程编程主要涉及fork()函数的使用,而多线程编程则基于pthread线程库。通过理解这些基础知识,开发人员能够更好地利用现代操作系统提供的并发能力,...

    Linux下的多线程编程实例解析

    【Linux下的多线程编程实例解析】 在计算机操作系统中,多线程编程是实现并行处理和提高系统效率的一种重要技术。Linux系统同样支持多线程编程,这使得开发者能够利用这一特性创建高效的、响应迅速的应用程序。多...

    linux下的C\C++多进程多线程编程实例详解

    linux下的C\C++多进程多线程编程实例详解 1、多进程编程 #include #include #include &lt;unistd&gt; int main() { pid_t child_pid; /* 创建一个子进程 */ child_pid = fork(); if(child_pid == 0) { printf...

    Linux下的C语言多线程编程.doc

    本文档主要介绍了Linux下的C语言多线程编程,包括多线程的概念、优点、实现方法和实例代码。多线程技术可以提高应用程序的响应速度、使多CPU系统更加有效、改善程序结构等。 多线程的概念 多线程是一种多任务操作...

    C语言多线程编程实例[借鉴].pdf

    在C语言多线程编程中,线程同步是控制多个线程在执行时,按照一定的顺序来访问某些共享资源,避免多个线程同时对同一个资源进行操作,造成资源的不一致或竞争条件。在给定文件中,我们看到了多线程编程的实例,包含...

Global site tag (gtag.js) - Google Analytics