i.MX6ULL终结者线程基础 线程创建

线程是系统调度的基本单位,一个进程中在创建时默认只有一个线程,一个进程可以创建多个线程,这几个线程可以同时执行。
多线程比多进程更容易传输数据,由于线程之间能够共享进程里的资源,所以并发线程同时操作进程资源会产出竞争的情况,需要对多线程进行同步操作。如串口需要同时同时收发,应用层可能会因为I/O阻塞阻止程序进行下一步,使用多线程读写可解决问题,即一个线程读,一个线程写,互不影响;在网络编程中可处理多个客户端同时连接和请求。
Linux线程和windows中的线程不一样,Linux中的线程是轻量级的进程,但是线程的开销比进程要小,而且线程的同步方法比进程要简单,切换的时间比进程短,编程时更加灵活。
在编译线程代码时带-lpthread,指定动态链接库,使用命令“ps -eLf”查看运行的线程。

1线程创建

每个线程都有一个线程ID,一个线程号代表一个线程。
pthread_create():创建新的线程:
#include <pthread.h>
int pthread_create(pthread_t *thread,
const pthread_attr_t *attr,
void *(*start_routine) (void *),
void *arg
);
参数含义:
thread:线程号;
attr:指定线程属性,设置为 NULL代表使用默认属性;
start_routine:函数指针,线程创建后执行指向的回调函数;
arg:传递给回调函数start_routine的参数。
返回值:成功返回0,出错返回错误号。

pthread_self():获取线程号:
#include <pthread.h>
pthread_t pthread_self(void);
返回值:返回线程 ID,不会执行失败。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值