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. Ubuntu / Win7 安装db2 v10.5

    抓紧下载v10.5fp1_linuxx64_expc.tar.gz到~/Downloads/java_softcd java_softtar xf v10.5fp1_linuxx64_expc.tar ...

  2. 攻城狮在路上(壹) Hibernate(十六)--- Hibernate声明数据库事务

    一.数据库事务的概念: 数据库的ACID特征:Atomic.Consistency.Isolation.Durability.原子性.一致性.隔离性.持久性.不同的隔离级别引发的不同问题. 事务的AC ...

  3. PHP检测终端设备是平板、手机还是电脑

    <?php $ua = $_SERVER['HTTP_USER_AGENT']; function userAgent($ua){ $iphone = strstr(strtolower($ua ...

  4. php计算几分钟前、几小时前等

    function format_date($time){ $t=time()-$time; $f=array( '=>'年', '=>'个月', '=>'星期', '=>'天' ...

  5. 跟着鸟哥学Linux系列笔记0-扫盲之概念

    相关缩写全称: POSIX(Portable Operation System Interface):可携式操作系统接口,重点在于规范内核与应用之间的接口,由IEEE定义发布 IEEE: 美国电气与电 ...

  6. winows下使用ssh服务远程登录vbox中的虚拟机

    1.到http://www.putty.org/下载并安装SSH客户端 2.查看是否安装ssh服务 在ubuntu终端命令界面键入: #ssh localhost 如果出现下面提示则表示还没有安装: ...

  7. 如何设计一个优秀的API(转)

    到目前为止,已经负责API接近两年了,这两年中发现现有的API存在的问题越来越多,但很多API一旦发布后就不再能修改了,即时升级和维护是必须的.一旦API发生变化,就可能对相关的调用者带来巨大的代价, ...

  8. MySQL级联删除的问题

    一.FOREIGN KEY 的定义分为两种:列级约束和表级约束 .列及约束的话,可以在列定义的同时,定义外键约束.比如 如果有2张表,主表:T1(A1 )) 要在从表T2中定义外键列这可以: Crea ...

  9. HTML概况性介绍

    HTML(HyperText Markup Language)汉语的意思是:超文本标记语言. ”超文本”是指.html页面内不仅仅可以包含文字,还可以包含图片.链接,甚至音乐.程序等非文字元素. “标 ...

  10. Linux学习笔记(12)用户和用户组管理

    越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范.在Linux中主要是通过用户配置文件来查看和修改用户信息. 1 用户信息文件 (1)用户信息文件/etc/passw ...