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

Linux下C和C++多线程基础示例POSIX pthread

 
阅读更多

C代码示例:gcc example.c -lpthread;

#include <stdio.h>
#include <pthread.h>
void* thread(int r)
{
    int i;
    for(i=0;i<3;i++)
        printf("This is a pthread %d.\n",r);
}

int main(void)
{
    pthread_t id1;
    pthread_t id2;
    pthread_t id3;
    pthread_t id4;
    int i,ret;
    int one=1;
    int two=2;
    int three=3;
    int four=4;
    ret=pthread_create(&id1,NULL, (void*)thread,one);
    ret=pthread_create(&id1,NULL, (void*)thread,two);
    ret=pthread_create(&id1,NULL, (void*)thread,three);
    ret=pthread_create(&id1,NULL, (void*)thread,four);
    if(ret!=0){
         printf ("Create pthread error!\n");
         return 1;
    }
    for(i=0;i<3;i++)
         printf("This is the main process.\n");
    pthread_join(id1,NULL);
    pthread_join(id2,NULL);
    pthread_join(id3,NULL);
    pthread_join(id4,NULL);
    return 0;
}

 

C++代码示例:g++ example.cc -lpthread

#include <stdio.h>
#include <pthread.h>
extern "C" void* thread(void * r)
{
    int i;
    for(i=0;i<3;i++)
        printf("This is a pthread %d.\n",*(int*)r);
}

int main(void)
{
    pthread_t id1;
    pthread_t id2;
    pthread_t id3;
    pthread_t id4;
    int i,ret;
    int one=1;
    int two=2;
    int three=3;
    int four=4;
    ret=pthread_create(&id1,NULL, thread,(void*)&one);
    ret=pthread_create(&id1,NULL, thread,(void*)&two);
    ret=pthread_create(&id1,NULL, thread,(void*)&three);
    ret=pthread_create(&id1,NULL, thread,(void*)&four);
    if(ret!=0){
         printf ("Create pthread error!\n");
         return 1;
    }
    for(i=0;i<3;i++)
         printf("This is the main process.\n");
    pthread_join(id1,NULL);
    pthread_join(id2,NULL);
    pthread_join(id3,NULL);
    pthread_join(id4,NULL);
    return 0;
}

 注意thread和pthread_create的参数类型转换,以及extern “C”

分享到:
评论

相关推荐

    Posix Pthread API 总结文档

    个人学习Linux POSIX Pthread 中遇到的线程函数总结成doc文档!

    Linux下C多线程编程

    Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux下pthread的实现是通过系统调用clone()来实现的。...

    POSIX规范多线程代码示例

    一共6个范例,由简单到复杂详细展现了c++的多线程库pthread的用法,liunx下编译运行通过,windows下使用vc一样可以轻松运行起来,记得添加-lpthread编译选项即可

    POSIX Pthread 编程资料大全

    POSIX Pthread 编程资料大全

    C++,利用pthread,实践异步多线程程序

    适合人群:C++学习者,需要多线程程序示例的pthread学习者,pthread入门人员,对mutex与condition不熟悉的学习人员。 阅读建议: 首先熟悉在何处会打印哪句qDebug语句,有助于理解线程间通讯过程与mutex和...

    Posix(1).rar_POSIX Pthread_posix_pthread_pthread posix

    pthread编程指南,介绍关于PTHREAD的编程,在Linux下的应用。。

    posix多线程程序设计源码

    posix多线程程序设计源码 posix多线程程序设计源码 posix多线程程序设计源码 posix多线程程序设计源码

    posix pthread tools: barrie and rwlock

    posix pthread实现的多线程同步工具源代码,包括两个: 1. barrier 等待所有线程进入同一状态。 2. rwlock 读写锁。 &lt;&lt;Posix 多线程编程&gt;&gt;

    多线程开发基于linux OS

    linux多线程设计是指基于Linux操作系统下的多线程设计,包括多任务程序的...Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。

    由浅入深Linux下pthread线程库介绍

    由浅入深Linux下pthread线程库介绍,pthread在linux下面的实现,与posix的标准

    NDK中C++使用POSIX线程库调用java

    NDK中C++使用POSIX线程库调用java的一个Demo,NDK多线程实现生产者消费者实例。想学习一下的同学,快快下载吧!

    多线程编程 UNIX LINUX Programming with POSIX Threads

    我也是如此. 显然,这是一本相当重要的书,当你在学习UNIX/LINUX下的多线程编程的时候. &lt;br&gt;我把在国外网站找到的这本书打做成PDF格式.希望对大家有帮助. 文件太大,分成了四部分,请下载完整. &lt;br&gt;多线程...

    POSIX多线程程序设计.pdf

    内容简介 《POSIX多线程程序设计》深入描述了IEEE的开放系统接口标准——POSIX线程,通常称为Pthreads标准。本书首先解释了线程的基本...《POSIX多线程程序设计》适合有经验的C语言程序员阅读,也适合多线程人员参考。

    Posix多线程编程学习笔记1~6

    Posix多线程编程学习笔记1~6,包括线程基础,线程属性,信号灯,条件变量,互斥变量,共享内存六部分内容。很有助于linux下多线程的开发。文档主要包含介绍相应的pthread接口函数,并举了部分相应的例子。

    Posix C语言多线程包API

    C语言的多线程包Posix的API参考chm格式

    zthread源码和posix pthread库的静态动态库以及头文件

    资源中包含zthread库2.3.1版本源码和在windows平台上编译和使用需要的posix pthread库的lib,dll以及三个.h文件

    posix pthread windows 实现

    详见: https://www.sourceware.org/pthreads-win32/

    POSIX多线程程序设计随书源码

    POSIX多线程程序设计随书源码,很不错的多线程编程资料

    linux 多线程合集

    5本Linux多线程合集: 多线程编程指南.pdf, Linux多线程编程手册.pdf, 多线程编程技术, posix pthread API, 专家级多线程技术.Eng.pdf

Global site tag (gtag.js) - Google Analytics