c/c++语言开发共享C/C++_多和多线程_demo1

前言 文档分为两个部分。 第一部分:前言,这篇文章主要是记录了一个简单的demo,证明两个线程在同时运行,记录下学习内容; 第二部分:demo的内容,运行环境,如何实现。 主要内容 环境 软件运行环


前言

文档分为两个部分。
第一部分:前言,这篇文章主要是记录了一个简单的demo,证明两个线程在同时运行,记录下学习内容;
第二部分:demo的内容,运行环境,如何实现。

主要内容

环境

软件运行环境:android n
软件编译环境:
硬件环境:全志h6

demo功能

在android 上运行一个demo,开辟两条线程,让它们同时工作输出打印。

代码内容

在android代码下面external目录下新建文件夹initdemo,创建以下三个文件:android.mk、initthread.cpp、initthread.h
android.mk内容如下:

  local_path:= $(call my-dir)  include $(clear_vars)        local_ldflags += -shared     local_src_files:=       initthread.cpp     local_c_includes :=       $(local_path)/       local_shared_libraries :=       libcutils       libutils       liblog     local_module_tags := optional    local_cflags += -wno-multichar    local_module:= testforthread    #include $(build_shared_library)  include $(build_executable)  

initthread.cpp内容如下:

  #include   #include   #include   #include   #include "initthread.h"    using namespace android ;    sp mfun1thread;  sp mfun2thread;    int main(int argc, char* const argv[])  {        mfun1thread = new dofun1thread();      mfun2thread = new dofun2thread();        mfun1thread->startthread();      mfun2thread->startthread();      while(true)      {      printf("zjw,in main!n");      sleep(1);      }        return 0;  }

initthread.h内容如下:

  #ifndef __init_thread_h__  #define __init_thread_h__    #include   #include       namespace android {    int fun1thread(void)  {      printf("fun1thread,one!n");      sleep(1);      return true;  }    int fun2thread(void)  {      printf("fun2thread,two!n");      sleep(1);      return true;  }      class dofun1thread : public thread {      bool mrequestexit;  public:      dofun1thread() :      mrequestexit(false) {      }        void startthread() {          run("testfun1thread", priority_urgent_display);      }      void stopthread() {          mrequestexit = true;      }      virtual bool threadloop() {          if (mrequestexit) {              return false;          }            return  fun1thread();      }    };        class dofun2thread : public thread {      bool mrequestexit;  public:      dofun2thread() :      mrequestexit(false) {      }        void startthread() {          run("testfun2thread", priority_urgent_display);      }      void stopthread() {          mrequestexit = true;      }      virtual bool threadloop() {          if (mrequestexit) {              return false;          }            return  fun2thread();      }    };    }; /* namespace android*/      #endif /* __init_thread_h__ */

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/605796.html

(0)
上一篇 2021年5月13日
下一篇 2021年5月13日

精彩推荐