Linux多线程实例练习 - pthread_create()
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()的更多相关文章
- Linux多线程实例练习 - pthread_cancel()
Linux多线程实例练习 - pthread_cancel 1.代码 xx_pthread_cancel.c #include <pthread.h> #include <stdio ...
- Linux多线程实例练习 - pthread_exit() 与 pthread_join()
Linux多线程实例练习 - pthread_exit 与 pthread_join pthread_exit():终止当前线程 void pthread_exit(void* retval); pt ...
- Linux多线程实例解析
Linux系统下的多线程遵循POSIX线程接口,称为 pthread.编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a.顺便说一下,Linux ...
- Linux多线程实例 定时重启httpd和mysqld
#include <stdio.h> #include <pthread.h> void *start_routine(void *arg) { while(1) { syst ...
- Linux多线程编程实例解析
Linux系统下的多线程遵循POSIX线程接口,称为 pthread.编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a.顺便说一下,Linux ...
- Linux 多线程应用中如何编写安全的信号处理函数
http://blog.163.com/he_junwei/blog/static/1979376462014021105242552/ http://www.ibm.com/developerwor ...
- 笔记整理--Linux多线程
Unix高级环境编程系列笔记 (2013/11/17 14:26:38) Unix高级环境编程系列笔记 出处信息 通过这篇文字,您将能够解答如下问题: 如何来标识一个线程? 如何创建一个新线程? 如何 ...
- Linux多线程编程初探
Linux线程介绍 进程与线程 典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情.有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程 ...
- 【操作系统作业-lab4】 linux 多线程编程和调度器
linux多线程编程 参考:https://blog.csdn.net/weibo1230123/article/details/81410241 https://blog.csdn.net/skyr ...
随机推荐
- Howto: Connect MySQL server using C program API under Linux or UNIX
From my mailbag: How do I write a C program to connect MySQL database server? MySQL database does su ...
- Installing Hadoop on Mac OSX Yosemite Tutorial Part 1.
Installing Hadoop on Mac OSX Yosemite Tutorial Part 1. September 23, 2014 Marek 68 Comments Install ...
- annotation-config 和 component-scan 的区别
<context:annotation-config> 和 <context:component-scan>是Spring Core里面的两个基础概念,每个使用者都有必要理解怎 ...
- JavaScript前端框架的思考
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:现在JavaScript前端框架层出不穷,尤其Angular进入到2.x时候之后,我们 ...
- Eclipse·如何关联Git库文件和添加JUint库
Eclipse创建工程并关联到文件(SVN或Git管理的代码文件) 新建java工程,用于存放工程的一些信息,默认存放地址. 工程相关的信息是不需要提交到(SVN或Git)版本库的,所以工程存放到本地 ...
- Codeforces Round #198 (Div. 1) D. Iahub and Xors 二维树状数组*
D. Iahub and Xors Iahub does not like background stories, so he'll tell you exactly what this prob ...
- Android中常用的五种数据存储方式
第一种: 使用SharedPreferences存储数据 适用范围: 保存少量的数据,且这些数据的格式非常简单:字符串型.基本类型的值.比如应用程序的各种配置信息(如是否打开音效.是否使用震动效果.小 ...
- Memcache升级版:CouchBase的安装配置与使用说明
Memcache基本上已经是开发的标配了,但是对于Memcache集群,很多线上部署仍然是很单薄的. 几个存在的问题:不健壮.数据不安全.配置变更可能导致存取异常.后备数据的一致性 鉴于存在以上问题, ...
- LoadRunner 脚本学习 -- 指针基础
先搞清楚 ++a 和 a++的区别 ++a : 前缀++, 先自增,后表达式 a++ : 后缀++, 先表达式,后自增 前缀,自增立即生效. 后缀,下次才会看到效果. 一维数组的指针 Action ...
- JAVA多线程实现的四种方式
Java多线程实现方式主要有四种:继承Thread类.实现Runnable接口.实现Callable接口通过FutureTask包装器来创建Thread线程.使用ExecutorService.Cal ...