Linux 下的多线程编程(1)

#include<stdio.h>
#include<pthread.h>
#include<string.h>
#include<sys/time.h>
#define MAX 20
//定义三个线程共同完成计数任务
pthread_t thread[3];
pthread_mutex_t mut;//定义互斥锁变量
int num=0;
int i;

void *thread1(){
    printf("thread1:im thread 1");
    for(i=0;i<MAX;i++){
        printf("thread1:num=%d \n",num);
        pthread_mutex_lock(&mut);
            num++;
        pthread_mutex_unlock(&mut);
        sleep(2);
    }
    pthread_exit(NULL);
}
void *thread2(){
    printf("thread1:im thread 1");
    for(i=0;i<MAX;i++){
        printf("thread1:num=%d \n",num);
        pthread_mutex_lock(&mut);
            num++;
        pthread_mutex_unlock(&mut);
        sleep(2);
    }
    pthread_exit(NULL);
}
void *thread3(){
    printf("thread1:im thread 1");
    for(i=0;i<MAX;i++){
        printf("thread1:num=%d \n",num);
        pthread_mutex_lock(&mut);
            num++;
        pthread_mutex_unlock(&mut);
        sleep(2);
    }
    pthread_exit(NULL);
}
void main(){
    pthread_mutex_init(&mut,NULL);//使用默认属性来初始化互斥锁
    pthread_create(&thread[0],NULL,thread1,NULL);//创建线程并没有运行
    pthread_create(&thread[1],NULL,thread1,NULL);
    pthread_create(&thread[2],NULL,thread1,NULL);
    pthread_join(thread[0],NULL);//把线程1加入等待开始执行
    pthread_join(thread[1],NULL);
    pthread_join(thread[2],NULL);
}
时间: 2024-10-09 19:46:12

Linux 下的多线程编程(1)的相关文章

【转】Linux下的多线程编程

1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的 Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程.现在,多线程技术已经被许多操作系统所支持,包括Windows也包括Linux.  为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题.  使用多线程的理由之一是和进程相比,它是一种非

Linux下的多线程编程

1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的 Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程.现在,多线程技术已经被许多操作系统所支 持,包括Windows也包括Linux. 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题. 使用多线程的理由之一是和进程相比,它是一种非常

linux下的多线程

1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程.现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux. 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题. 使用多线程的理由之一是和进程相比,它

【转】Linux下的多线程编

作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/07/2807484.html 本文作者: 姚继锋 (2001-08-11 09:05:00) 黄鹏程(2009-03-13) converse (2009-01-15) 1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传

Linux C++的多线程编程

1. 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程.现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux. 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题. 使用多线程的理由之一是和进程相比,

Linux下的C编程实战

Linux下的C编程实战(一) ――开发平台搭建 1.引言 Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性.而近年来, Linux操作系统在嵌入式系统领域的延伸也可谓是如日中天,许多版本的嵌入式Linux系统被开发出来,如ucLinux.RTLinux.ARM-Linux等等. 在嵌入式操作系统方面,Linux的地位是不容怀疑的,它开源.它包含TCP/IP协议栈.它易集成GUI. 鉴于Linux操作系统在服务器和嵌入式系统领

每天进步一点点——论fork()函数与Linux中的多线程编程

转载请说明出处:http://blog.csdn.net/cywosp/article/details/27316803 一.fork()函数 在操作系统的基本概念中进程是程序的一次运行,且是拥有资源的最小单位和调度单位(在引入线程的操作系统中,线程是最小的调度单位).在Linux系统中创建进程有两种方式:一是由操作系统创建,二是由父进程创建进程(通常为子进程).系统调用函数fork()是创建一个新进程的唯一方式,当然vfork()也能够创建进程,可是实际上其还是调用了fork()函数.fork

Linux 下的时间编程总结

在嵌入式编程中中,经常需要输出系统的当前时间.计算程序的执行时间.使用计时器等.最近也做了不少关于时间的操作,今天就认真总结一下,部分内容是在网上看到的.自己经过验证总结出来. 1.时间的类型 1.格林威治标准时间 coordinated universal time(UTC)是世界标准时间,即常说的格林威治标准时间(greenwich mean time,GMT). 2.日历时间 日历时间(calendar time)是用"一个标准时间点(如1970年1月1日0点)到此时经过的秒数"

Linux下C++的编程——开偏介绍

C++是一个功能强大而又应用广泛的计算机语言,就应用领域而言,几乎无所不在,因为有操作系统的地方就会有C++的存在,热门程序而言,也就仅次于C和Java.而C与C++又有天然的血缘关系. 从事C++开发近两年,虽然开发的产品都是跨平台的,但个人直接接触到的编程工程还是更偏重于Windows平台(至少开发环境更多的是在Windows平台,还写过"带你玩转Visual Studio"系列的博文),而现在要自己独立地带领一个项目的开发,还是一个跨平台的项目,也就有必要到Linux下C++的编