下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

详解Linux中的多线程都是如何实现的

作者:课课家教育     来源: http://www.kokojia.com点击数:1069发布时间: 2016-02-22 14:46:18

标签: Linux多线程linux系统Linux

  所谓的多线程就是多个函数同时执行。一般将线程表述为一个api加一个函数。线程函数有特定的格式要求,以便系统自动调用。

  Windows进程包含多个线程,进程是分配资源(包括CPU)的最小单位,而线程是调度的最小单位。

  Linux中的进程和线程关系应该和Windows一样,而且在Linux中创建多线程程序和Windows一样简单。

  下面是一个多线程实例,程序流程是这样的:

  进程启动,创建一个线程

  线程和主进程都每个一段时间输出一些信息,二者并发执行

  下面的代码编译于ubuntu 10.0.4:

  thread.cpp源代码:

  #include // printf

  #include // pthread_create

  #include // exit

  #include // usleep

  void * thread( void * par){// 线程函数

  int i;

  for( i = 0; i < 30; i ++){

  printf( "This is a pthread.\\n");

  usleep( 1000);

  }

  return 0;

  }

  int main(void){

  pthread_t id;

  int i,ret;

  ret = pthread_create( &id, NULL, thread, NULL);// 创建一个线程

  if( ret != 0){

  printf( "Create pthread error!\\n");

  exit( 1);

  }

  for( i = 0; i < 30; i ++){// 和创建的线程并发执行

  printf( "This is the main process.\\n");

  usleep( 330);

  }

  pthread_join( id, NULL); // 等待tid为id的线程退出执行

  return( 0);

  }

  makefile内容:

  thread: thread.cpp

  g++ thread.cpp -lpthread -o thread

  程序执行截图:

详解Linux中的多线程都是如何实现的_Linux多线程_linux系统_Linux_课课家

  笔记:

  编译时必须链入 pthread 这个库

  usleep参数是毫秒级的,sleep参数是秒级的

赞(26)
踩(4)
分享到:
华为认证网络工程师 HCIE直播课视频教程