调用pthead_create
pthread_t handle;
pthread_create(&handle, // 线程句柄
NULL, // 忽略
Thread_Main, // 线程的主函数
NULL) // 线程的参数,即context参数的值

1) sleep  单位是秒
(2) nanosleep  单位是纳秒,但系统是达不到纳秒的精度的。通常转指定毫秒级。5ms精度

void msleep(int ms)
{
timespec ts;
ts.tv_sec = ms / 1000;
ts.tv_nsec = (ms % 1000) * 1000000;
nanosleep(&ts, NULL);
}

pthread_create:
失败,返回<0的一个值
成功, 返回 0

Makefile如下所示:

EXE=helloworld
SUBDIR=srcCXXFLAGS +=
LDFLAGS += -lpthreadCXX_SOURCES =$(foreach dir,$(SUBDIR), $(wildcard $(dir)/*.cpp))
CXX_OBJECTS=$(patsubst  %.cpp, %.o, $(CXX_SOURCES))
DEP_FILES  =$(patsubst  %.o,  %.d, $(CXX_OBJECTS))$(EXE): $(CXX_OBJECTS)g++  $(CXX_OBJECTS) -o $(EXE) $(LDFLAGS)%.o: %.cppg++  -c  $(CXXFLAGS) -MMD $<  -o  $@-include $(DEP_FILES)clean: rm  -rf  $(CXX_OBJECTS)  $(DEP_FILES)  $(EXE)test:echo $(CXX_OBJECTS))

main.cpp

源码如下:

#include <stdio.h>
#include <unistd.h>
#include <pthread.h>void msleep(int ms){timespec ts;ts.tv_sec = ms/1000;ts.tv_nsec = (ms % 1000) * 1000000;nanosleep(&ts, NULL);
}void *Thread_Main(void *context){while(1){printf("I am a thread ... \n");//msleep(100);  //500ms::sleep(1);}return NULL;
}int main(){pthread_t handle;if(pthread_create(&handle, NULL, Thread_Main, NULL) < 0){printf("failed to create thread!\n");return -1;}getchar();return 0;
}

运行截图如下:

Linux学习笔记-调用pthead_create创建线程相关推荐

  1. Linux学习笔记---使用BusyBox创建根文件系统(四)

    目录 软件运行测试 设置程序为后台运行 设置开机自启动 外网连接测试 软件运行测试 进入到rootfs文件夹中新建一个drivers文件夹,用于存放编写的软件. 新建hello.c文件 输入以下代码 ...

  2. Linux学习笔记---使用BusyBox创建根文件系统(三)

    目录 创建/etc/init.d/rcS 文件 创建/etc/fstab 文件 创建/etc/inittab 文件 创建/etc/init.d/rcS 文件 通过nfs加载根文件系统成功后,在串口终端 ...

  3. Linux学习笔记---使用BusyBox创建根文件系统(二)

    目录 向 rootfs 的"/lib "目录添加库文件 向 rootfs 的usr/lib 目录添加库文件 创建其他文件夹 根文件系统初步测试 向 rootfs 的"/l ...

  4. Linux学习笔记---使用BusyBox创建根文件系统(一)

    目录 下载BusyBox 修改makefile 添加中文支持 编译busybox 下载BusyBox BusyBox 可以在其官网下载到,官网地址为:https://busybox.net 打开官网后 ...

  5. Linux学习笔记:mkdir创建文件夹

    文件夹,即目录,在linux中使用mkdir创建. 语法:mkdir dir_name 通过 mkdir 命令可以实现在指定位置创建以 dir_name(指定的文件名)命名的文件夹或目录.要创建文件夹 ...

  6. linux给数据库重命名,Linux学习笔记:mv移动或文件重命名

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 语法:mv 源文件 目标文件 视mv命令中 ...

  7. linux 创建线程函数吗,[笔记]linux下和windows下的 创建线程函数

    linux下和windows下的 创建线程函数 #ifdef __GNUC__ //Linux #include #define CreateThreadEx(tid,threadFun,args) ...

  8. 学习笔记--存储过程的创建和调用

    学习笔记–存储过程的创建和调用 定义 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次.如果某次操作需要执行多次SQL,使用存储过程比单纯SQL ...

  9. Linux学习笔记(3)- 网络编程以及范例程序

    Linux学习笔记(3)- 网络编程以及范例程序 前言 网络介绍 IP地址的介绍 端口和端口号的介绍 通信流程 socket介绍 TCP介绍 python3编码转换 TCP客户端程序开发流程 多任务版 ...

最新文章

  1. ACM——常用函数总结
  2. 常见电子元件实物照片
  3. 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值 解决方案...
  4. 『流畅的Python』第12章:继承的优缺点
  5. Perl文件句柄引用
  6. create-react-app脚手架工具使用
  7. JMeter扩展JMeter插件获取更多监听器
  8. 出栈顺序 与 卡特兰数(Catalan)的关系
  9. 一维数组转化为二维数组(java)
  10. 女明星因自拍瞳孔倒影暴露住址惨遭跟踪,一张照片是怎么出卖你?
  11. You have tried to change the API from what has been previously approved
  12. 解决linux sshd 超时问题
  13. 用java数组实现栈
  14. 学习笔记(02):19年录制Zookeeper、Dubbo视频教程 微服务教程分布式教程 SpringBoot教程整合-传统互联网架构到分布式架构的架构演变...
  15. 数智学习 | 一文读懂数据安全分类分级
  16. android手机密码忘了哪个电话打开,如果手机锁屏密码忘记了怎么办_安卓手机锁屏密码忘了的处理办法-系统城...
  17. 【报告分享】休闲游戏商业化发行指南-穿山甲(附下载)
  18. 公寓做网络管理300多个房间,怎么做?
  19. 叉积的证明_矢量叉乘分配律的几何证明
  20. 生物信息学仿真软件SInC的初步使用教程

热门文章

  1. 使用 Google gflags 简化命令行参数处理
  2. 你真的了解 “开源” 么?请查收【保姆级】开源百科
  3. 80后程序员必须知道的编程语言和它们的创造者
  4. 程序猿:我的未来,在哪里?
  5. p2psearcher2013其中
  6. 飞鸽传书有多少用户?
  7. 飞鸽传书最新C++源码:这两个消息钩子
  8. 程序员们记得还是八五年PC登陆我国时候的事?
  9. VC下发布的Release版程序的异常捕捉
  10. 妈妈花3万给9岁儿子报编程课 网友:全是忽悠!