Linux 多线程 pthread 库学习笔记

    Linux多线程是指在Linux操作系统下创建和管理多个线程的技术。Linux提供了许多多线程编程的工具和库,其中最常用的是pthread库。

    使用pthread库可以在Linux系统中创建和管理多个线程。pthread库提供了一组函数,包括线程创建、线程同步、线程销毁等功能。通过这些函数,我们可以实现多个线程的并发执行。

    在Linux中,多线程编程可以带来很多好处,比如提高程序的并发性、加速程序的执行速度、减少资源的占用等。同时,多线程编程也有一些注意点,比如线程同步、共享数据的问题等。

    总之,Linux多线程是一项非常重要的技术,在实际开发中也经常会用到。

相关函数:

// 头文件
#include 


// pthread_create - create a new thread
// On  success,  pthread_create() returns 0; on error, it returns an error number, and the contents of *thread are undefined
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
                          void *(*start_routine) (void *), void *arg);


// pthread_join - join with a terminated thread
// On success, pthread_join() returns 0; on error,  it  returns  an  errornumber
int pthread_join(pthread_t thread, void **retval);


// pthread_self - obtain ID of the calling thread
//This function always succeeds, returning the calling thread's ID
pthread_t pthread_self(void);


// pthread_attr_init, pthread_attr_destroy - initialize and destroy thread attributes object
// On success, these functions return 0; on error, they return  a  nonzero error number.
int pthread_attr_init(pthread_attr_t *attr);
int pthread_attr_destroy(pthread_attr_t *attr);

测试代码:

#include
#include
#include
#include
#include
#include


//线程函数
void *my_fun(void *arg)
{
  printf("my_fun start %d\n",(int)arg);


  int i = 0;
  while(1)
  {
    printf("my_fun running  %d\n",(int)arg);
    sleep(2);
  }


  printf("my_fun over %d\n",(int)arg);
}


int main()
{
  printf("main start\n");


  int res;
  int i = 0;
  pthread_t id;
  
  for(i=0; i < 5; i++)
  {
    //创建函数线程,并且指定函数线程要执行的函数
    res = pthread_create(&id,NULL,my_fun,(void*)i);
    assert(res == 0);
  }
  while(1)//阻塞
  {
    printf("main fun\n");
    sleep(10);
  }
  printf("main over\n");
  exit(0);
}

运行效果:

Linux 多线程 pthread 库学习笔记_第1张图片

欢迎关注公众号:嵌入式学习与实践

你可能感兴趣的:(linux,学习,笔记,运维,服务器)