Linux学习笔记-调用pthead_create创建线程
调用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创建线程相关推荐
- Linux学习笔记---使用BusyBox创建根文件系统(四)
目录 软件运行测试 设置程序为后台运行 设置开机自启动 外网连接测试 软件运行测试 进入到rootfs文件夹中新建一个drivers文件夹,用于存放编写的软件. 新建hello.c文件 输入以下代码 ...
- Linux学习笔记---使用BusyBox创建根文件系统(三)
目录 创建/etc/init.d/rcS 文件 创建/etc/fstab 文件 创建/etc/inittab 文件 创建/etc/init.d/rcS 文件 通过nfs加载根文件系统成功后,在串口终端 ...
- Linux学习笔记---使用BusyBox创建根文件系统(二)
目录 向 rootfs 的"/lib "目录添加库文件 向 rootfs 的usr/lib 目录添加库文件 创建其他文件夹 根文件系统初步测试 向 rootfs 的"/l ...
- Linux学习笔记---使用BusyBox创建根文件系统(一)
目录 下载BusyBox 修改makefile 添加中文支持 编译busybox 下载BusyBox BusyBox 可以在其官网下载到,官网地址为:https://busybox.net 打开官网后 ...
- Linux学习笔记:mkdir创建文件夹
文件夹,即目录,在linux中使用mkdir创建. 语法:mkdir dir_name 通过 mkdir 命令可以实现在指定位置创建以 dir_name(指定的文件名)命名的文件夹或目录.要创建文件夹 ...
- linux给数据库重命名,Linux学习笔记:mv移动或文件重命名
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 语法:mv 源文件 目标文件 视mv命令中 ...
- linux 创建线程函数吗,[笔记]linux下和windows下的 创建线程函数
linux下和windows下的 创建线程函数 #ifdef __GNUC__ //Linux #include #define CreateThreadEx(tid,threadFun,args) ...
- 学习笔记--存储过程的创建和调用
学习笔记–存储过程的创建和调用 定义 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次.如果某次操作需要执行多次SQL,使用存储过程比单纯SQL ...
- Linux学习笔记(3)- 网络编程以及范例程序
Linux学习笔记(3)- 网络编程以及范例程序 前言 网络介绍 IP地址的介绍 端口和端口号的介绍 通信流程 socket介绍 TCP介绍 python3编码转换 TCP客户端程序开发流程 多任务版 ...
最新文章
- ACM——常用函数总结
- 常见电子元件实物照片
- 由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值 解决方案...
- 『流畅的Python』第12章:继承的优缺点
- Perl文件句柄引用
- create-react-app脚手架工具使用
- JMeter扩展JMeter插件获取更多监听器
- 出栈顺序 与 卡特兰数(Catalan)的关系
- 一维数组转化为二维数组(java)
- 女明星因自拍瞳孔倒影暴露住址惨遭跟踪,一张照片是怎么出卖你?
- You have tried to change the API from what has been previously approved
- 解决linux sshd 超时问题
- 用java数组实现栈
- 学习笔记(02):19年录制Zookeeper、Dubbo视频教程 微服务教程分布式教程 SpringBoot教程整合-传统互联网架构到分布式架构的架构演变...
- 数智学习 | 一文读懂数据安全分类分级
- android手机密码忘了哪个电话打开,如果手机锁屏密码忘记了怎么办_安卓手机锁屏密码忘了的处理办法-系统城...
- 【报告分享】休闲游戏商业化发行指南-穿山甲(附下载)
- 公寓做网络管理300多个房间,怎么做?
- 叉积的证明_矢量叉乘分配律的几何证明
- 生物信息学仿真软件SInC的初步使用教程