【Linux】线程----线程控制

本文介绍了Linux下线程的创建、线程ID、线程终止(主动与被动退出)、线程等待以及线程分离。通过代码示例展示了如何使用线程库进行线程操作,强调了线程资源回收的重要性,特别是线程等待的作用和分离线程的机制。
摘要由CSDN通过智能技术生成

  • 实际上Linux操作系统并没有给用户提供创建一个线程的系统调用接口,用户无法直接创建线程,但是大佬们封装了一套线程库,通过库函数可以实现线程控制的各种操作。

线程创建

  • 我们创建线程就是在用户态创建线程,可以实现在内核态创建一个轻量级进程实现调度;
int pthread_create(pthread_t *tid, pthread_attr_t *attr, 
                     void*(*thread_routine)(void *arg), void *arg)
tid:输出型参数,用于向用户返回线程id,是后序续线程操作的句柄
attr:用于设置线程属性,通常置NULL
thread_routine:线程的入口函数
arg:最终会通过线程入口函数的参数传递给线程的数据
返回值:若成功则返回0,失败返回一个非0

代码示例

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

void *thread_start(void *arg)
{
   
  printf("accept information : %s", (char*)arg);
  while(1)
  {
   
    printf("this is a normal thread\n");
    sleep(1);
  }
  return NULL;
}
// 程序运行起来之后,操作系统会创建一个主线程pcb调度运行main函数
// 在这个线程中可以创建另一个线程,创建一个pcb运行线程运行线程入口函数
int main()
{
   
  pthread_t tid;
  char *buf = "Hello thread~\n";
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值