【应用】05.Linux多线程编程

【嵌入式八股】一、语言篇https://www.nowcoder.com/creation/manager/columnDetail/mwQPeM

【嵌入式八股】二、计算机基础篇https://www.nowcoder.com/creation/manager/columnDetail/Mg5Lym

【嵌入式八股】三、硬件篇https://www.nowcoder.com/creation/manager/columnDetail/MRVDlM

【嵌入式八股】四、嵌入式Linux篇(本专栏)https://www.nowcoder.com/creation/manager/columnDetail/MQ2bb0

4、Linux多线程编程

90.多线程编程相关函数
  1. pthread_self() 函数:用于获取当前线程的 ID。
  2. pthread_create() 函数:用于创建一个新线程,它需要传入一个指向线程标识符的指针、线程属性、线程函数和传递给线程函数的参数,成功创建后,线程将开始执行指定的函数。
  3. pthread_exit() 函数:用于终止当前线程,并返回一个指定的值,此函数可以使线程返回给创建它的进程一个值。
  4. pthread_join() 函数:用于等待一个指定的线程结束,它会阻塞调用它的线程,直到指定的线程结束为止。
  5. pthread_cancel() 函数:用于请求取消指定的线程,实际上并不保证能够取消成功。
  6. pthread_detach() 函数:用于将指定线程设置为分离状态,使得该线程结束时可以自动回收相关资源,而不需要显式调用 pthread_join() 函数。
  7. pthread_attr_ 函数:用于设置线程的属性,包括线程栈的大小、优先级、调度策略等等。
91.怎么回收线程?有哪几种方法?
  • 等待线程结束: int pthread_join(pthread_t tid, void** retval);

    主线程调用,等待子线程退出并回收其资源,类似于进程中wait/waitpid回收僵尸进程,调用pthread_join的线程会被阻塞。

    • tid:创建线程时通过指针得到tid值。
    • retval:指向返回值的指针。
  • 结束线程: void pthread_exit(void *retval);

    子线程执行,用来结束当前线程并通过retval传递返回值,该返回值可通过pthread_join获得。

  • 分离线程: int pthread_detach(pthread_t tid);

    主线程、子线程均可调用。主线程中pthread_detach(tid),子线程中pthread_detach(pthread_self()),调用后和主线程分离,子线程结束时自己立即回收资源。

92.线程同步相关函数
  1. pthread_mutex_ 函数:用于对互斥锁(mutex)进行操作,包括初始化、加锁、解锁、销毁等。互斥锁是一种保护共享资源的机制,它可以防止多个线程同时访问共享资源,从而避免出现数据竞争(da

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

【嵌入式八股】嵌入式Linux 文章被收录于专栏

查阅整理上千份嵌入式面经,将相关资料汇集于此,主要包括: 0.简历面试 1.语言篇 2.计算机基础 3.硬件篇 4.嵌入式Linux【本专栏】 (建议PC端查看)

全部评论
肯定是C++方面的大佬了。现在会不会成为考官了
点赞
送花
回复
分享
发布于 2023-03-28 13:54 湖北
点赞
送花
回复
分享
发布于 2023-04-02 09:39 辽宁
滴滴
校招火热招聘中
官网直投

相关推荐

头像
不愿透露姓名的神秘牛友
04-11 18:39
已编辑
CATL 嵌入式软件方向 13k 本科211
点赞 评论 收藏
转发
4 3 评论
分享
牛客网
牛客企业服务