嵌入式笔记17 线程 创建线程


一、消息队列

1.消息队列

消息队列:传送有格式的消息流
多进程网络交叉通信,实现大规模数据通信
使用内核中的链表(实现机制)

2.posix的消息队列和系统V消息队列的区别

消息队列是随内核持续的

二、线程

1.什么是线程

线程是进程的一个实体,它是程序运行的最小单位
(线程在进程之间时可以相互通信,通过全局变量)

2、为什么要学习线程

1)线程是进程的一个实体,它是程序运行的最小单位,它比进程要消耗更少的资源
2)能共享地址空间(进程)(堆栈:程序栈)

3、线程由哪些组成

1)指令指针(指向当前被执行的命令)
2)一个栈(函数栈)
3)寄存器的集合(状态寄存器:一部分正在运行中的处理器状态)
4)一个私有的数据区

4、线程的特点

1、线程切换的开销很低(实质是函数切换)
2、线程的通信机制简单(共用的地址空间,全局变量通信)

5、线程并不是操作系统中内核提供的而是由线程库来提供libpthread.a/.so(调用)

三、创建线程

1、创建线程

#include <pthread.h>
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);
pthread_t *thread:指向线程的指针
const pthread_attr_t *attr:创建线程是的属性:NULL无属性创建
void *(*start_routine) (void *):线程运行的实体函数指针
void *arg:线程参数
注意:线程是进程的一个实体,一旦主进程运行结束,线程就会被回收

创建两个次线程,两个次线程分别的向同一个文件写“hello”“world\n” “hhhhhwwwww\n”

#include<stdio.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>

void *test(void *arg)
{
   
    printf("subpthread\n");
}

int main()
{
   
    pthread_t id;
    //创建一个子线程
    int ret = pthread_create(&id, NULL, test,NULL);
    if(0 != ret)
    {
   
	perror("pthread_create error!");
	exit(0);
    
    }
   // while(1);
    pause();//挂起
    return 0;
}
#include<stdio.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>
void *test(void *arg)
{
   
    int *num = (int *)arg;
    printf("subpthread:%d\n",*num);
    sleep(1);
    
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Linux是一种开源的操作系统内核,而CentOS则是一种基于Linux内核的发行版。下面是关于Linux和CentOS的一些笔记: 1. Linux操作系统: - Linux是一种开源操作系统内核,最初由Linus Torvalds于1991年创建。 - Linux操作系统具有高度的可定制性和灵活性,适用于各种设备,包括个人电脑、服务器、嵌入式系统等。 - Linux支持多用户、多任务和多线程,并提供了丰富的命令行工具和图形界面。 - 常见的Linux发行版包括Ubuntu、Debian、Fedora、CentOS等。 2. CentOS发行版: - CentOS是一种基于Red Hat Enterprise Linux(RHEL)源代码构建的免费发行版。 - CentOS提供了稳定、可靠且安全的操作系统环境,适用于服务器和企业级应用。 - CentOS与RHEL在软件包和功能方面基本保持一致,但不包含商业支持。 - CentOS使用yum作为软件包管理工具,可以方便地安装、更新和卸载软件包。 3. 常用命令和配置: - 在Linux和CentOS中,常用的命令有ls(列出文件和目录)、cd(切换目录)、mkdir(创建目录)、rm(删除文件或目录)等。 - 配置文件通常存放在/etc目录下,例如/etc/network/interfaces用于配置网络接口。 - Linux和CentOS支持使用vi或nano等文本编辑器来编辑配置文件。 - 通过使用sudo命令,可以以超级用户权限执行特权操作。 这些是关于Linux和CentOS的一些基本笔记。如果你有更具体的问题,我可以为你提供更详细的信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_49181551

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值