Linux多线程实例练习 pthread_create():创建一个线程

int pthread_create(pthread_t *tidp,
const pthread_attr_t *attr,
(void*)(*start_rtn)(void*),
void *arg);

1、代码如下 xx_pthread_create.c

 #include <pthread.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/time.h> // for gettimeofday #define debugMsg(fmt, arg...)\
do{\
unsigned long lSec = ; unsigned long lUSec = ;\
getTimeuSec(&lSec, &lUSec);\
printf("[%ld.%06ld]:", lSec, lUSec);\
printf(fmt, ##arg);\
}while() int getTimeuSec(unsigned long *lSec, unsigned long *lUSec)
{
struct timeval start;
gettimeofday( &start, NULL );
*lSec = start.tv_sec;
*lUSec = start.tv_usec; return ;
}
void * doPrint(void *arg)
{
int i = ;
while(i < )
{
debugMsg("pthread %2d; main %d\n", i++, *(int*)arg);
usleep();
} return NULL;
} int main()
{
pthread_t pid;
int iX = ;
pthread_create(&pid, NULL, doPrint, &iX);
while(iX <= + )
{
debugMsg("main : %d\n", iX++);
usleep();
} return ;
}

2、CentOS 下编译通过

g++ -g -c -o xx_pthread_create.o xx_pthread_create.c
g++ -g -o xx_pthread_create xx_pthread_create.o -lpthread

3、运行结果

[1422496189.763862]:main :
[1422496189.764341]:pthread ; main
[1422496189.965627]:pthread ; main
[1422496190.065601]:main :
[1422496190.166510]:pthread ; main
[1422496190.366393]:main :
[1422496190.367391]:pthread ; main
[1422496190.568275]:pthread ; main
[1422496190.667215]:main :
[1422496190.769157]:pthread ; main
[1422496190.968039]:main :
[1422496190.970323]:pthread ; main
[1422496191.171922]:pthread ; main
[1422496191.269869]:main :
[1422496191.373803]:pthread ; main
[1422496191.571696]:main :
[1422496191.574958]:pthread ; main
[1422496191.776566]:pthread ; main
[1422496191.873512]:main :
[1422496191.977457]:pthread ; main
[1422496192.174348]:main :
[1422496192.178362]:pthread ; main
[1422496192.379214]:pthread ; main
[1422496192.475159]:main :
[1422496192.580095]:pthread ; main
[1422496192.776006]:main :
[1422496192.781267]:pthread ; main
[1422496192.981968]:pthread ; main
[1422496193.076864]:main :
[1422496193.182797]:pthread ; main
[1422496193.377656]:main :
[1422496193.384089]:pthread ; main
[1422496193.584595]:pthread ; main
[1422496193.678472]:main :
[1422496193.785406]:pthread ; main
[1422496193.980296]:main :
[1422496193.987689]:pthread ; main
[1422496194.189201]:pthread ; main
[1422496194.281149]:main :
[1422496194.390049]:pthread ; main
[1422496194.582987]:main :
[1422496194.590944]:pthread ; main
[1422496194.792793]:pthread ; main
[1422496194.883821]:main :
[1422496194.993852]:pthread ; main
[1422496195.184826]:main :
[1422496195.195665]:pthread ; main
[1422496195.397447]:pthread ; main
[1422496195.486468]:main :
[1422496195.598408]:pthread ; main
[1422496195.787329]:main :

Linux多线程实例练习 - pthread_create()的更多相关文章

  1. Linux多线程实例练习 - pthread_cancel()

    Linux多线程实例练习 - pthread_cancel 1.代码 xx_pthread_cancel.c #include <pthread.h> #include <stdio ...

  2. Linux多线程实例练习 - pthread_exit() 与 pthread_join()

    Linux多线程实例练习 - pthread_exit 与 pthread_join pthread_exit():终止当前线程 void pthread_exit(void* retval); pt ...

  3. Linux多线程实例解析

    Linux系统下的多线程遵循POSIX线程接口,称为 pthread.编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a.顺便说一下,Linux ...

  4. Linux多线程实例 定时重启httpd和mysqld

    #include <stdio.h> #include <pthread.h> void *start_routine(void *arg) { while(1) { syst ...

  5. Linux多线程编程实例解析

    Linux系统下的多线程遵循POSIX线程接口,称为 pthread.编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a.顺便说一下,Linux ...

  6. Linux 多线程应用中如何编写安全的信号处理函数

    http://blog.163.com/he_junwei/blog/static/1979376462014021105242552/ http://www.ibm.com/developerwor ...

  7. 笔记整理--Linux多线程

    Unix高级环境编程系列笔记 (2013/11/17 14:26:38) Unix高级环境编程系列笔记 出处信息 通过这篇文字,您将能够解答如下问题: 如何来标识一个线程? 如何创建一个新线程? 如何 ...

  8. Linux多线程编程初探

    Linux线程介绍 进程与线程 典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情.有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程 ...

  9. 【操作系统作业-lab4】 linux 多线程编程和调度器

    linux多线程编程 参考:https://blog.csdn.net/weibo1230123/article/details/81410241 https://blog.csdn.net/skyr ...

随机推荐

  1. V for Vendetta

    V for Vendetta V字仇杀队 复仇者V 安迪·沃卓斯基 and Larry Wachowski 思想,是最强大的武器.因为,世界上的独裁政府,有一个共同特点就是推行洗脑和愚民政策. 经典台 ...

  2. JS 时间格式化

    Date.prototype.format = function(format){ var o = { "M+" : this.getMonth()+1, //month &quo ...

  3. WPF RoadMap

    最近ms 更新对WPF支持,http://blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx Work on imp ...

  4. MapKit 添加大头针

    #import "ViewController.h" #import <MapKit/MapKit.h> #import "MYAnnotation.h&qu ...

  5. Linux学习笔记(21) Linux日志管理

    1. 简介 (1) 日志服务 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式 ...

  6. jsp include指令

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  7. TCP拆包粘包之分隔符解码器

    TCP以流的方式进行数据传输,上层的应用协议为了对消息进行区分,往往采用如下4种方式. (1)消息长度固定,累计读取到长度总和为定长LEN的报文后,就认为读取到了一个完整的消息:将计数器置位,重新开始 ...

  8. express-13 中间件

    简介 从概念上讲,中间件是一种功能的封装方式,具体来说就是封装在程序中处理HTTP请求的功能. 中间件是在管道中执行的,在Express程序中,通过调用app.use向管道中插入中间件.(在Expre ...

  9. HTTP基础06--网络安全

    HTTP 的缺点 通信使用明文可能会被窃听 HTTP 报文使用明文(指未经过加密的报文)方式发送. 通信的加密 用 SSL 建立安全通信线路之后,就可以在这条线路上进行 HTTP 通信了.与 SSL ...

  10. PHP、Java对称加密中的AES加密方法

    PHP AES加密 <?php ini_set('default_charset','utf-8'); class AES{ public $iv = null; public $key = n ...