东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1259|回复: 0
打印 上一主题 下一主题

[C/C++] Linux之Ubuntu c++多线程代码demo

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14439
QQ
跳转到指定楼层
楼主
发表于 2021-5-12 16:09:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式



Linux之Ubuntu c++多线程代码demo


  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <pthread.h>

  6. void * Thread_collect(void *args){
  7.     //拿到主线程传过来的参数
  8.     int *counter_p = (int *)args;
  9.     for(int i=0; i<5; i++){
  10.         *counter_p = *counter_p + 2;
  11.         printf("收集数据线程。。。%d\n", *counter_p);
  12.         sleep(1);
  13.     }
  14.     return NULL;
  15. }

  16. void * Thread_process(void *args){
  17.     int *counter_p = (int *)args;
  18.     for(int i=0; i<6; i++){
  19.         *counter_p = *counter_p + 1;
  20.         printf("算法处理线程。。。%d\n", *counter_p);
  21.         sleep(1);
  22.     }
  23.     return NULL;
  24. }



  25. int main(){
  26.     //Linux之Ubuntu c++多线程代码demo
  27.     //g++ -g -o dm dm03_雷达实时多线程.cpp -lpthread
  28.     // ./dm执行即可

  29.         //主线程:创建公共队列、维护队列、最后清空和销毁队列 创建2个子线程并维护他们的回调
  30.         //子线程1:从usb口源源不断的实时取数据 并放队列里面
  31.         //子线程2:从队里里拿数据 做实时信号算法处理
  32.     int counter_common = 10;
  33.     printf("雷达实时算法入口【Linux系统】...主线程初始计数器=%d\n", counter_common);
  34.     //两个线程去操作 计数器 指针
  35.     pthread_t handle_collect, handle_process;
  36.     int err1 = pthread_create(&handle_collect,NULL,Thread_collect,&counter_common);
  37.     int err2 = pthread_create(&handle_process,NULL,Thread_process,&counter_common);

  38.     if(err1 == 0 && err2 == 0){
  39.         printf("主线程:创建2个子线程成功!\n");
  40.     }
  41.     //主线程要等到创建的线程返回了,获取该线程的返回值后主线程才退出
  42.     // 只等待子线程,但是不关心子线程的退出值
  43.     pthread_join(handle_collect, NULL);
  44.     pthread_join(handle_process, NULL);
  45.     printf("等所有子线程执行完毕.。。再回到主线程,再看计数器=%d\n", counter_common);
  46.     return 0;
  47. }
复制代码



linux_c_多线程01.png (177.95 KB, 下载次数: 72)

linux_c_多线程01.png

linux_c_多线程02.png (102.92 KB, 下载次数: 70)

linux_c_多线程02.png
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-5-19 19:03 , Processed in 0.189624 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表