I'm trying to create C++ program in the sense of embedded hardware programs that work in real time. The main loop in my C++ program uses a delay time of 250milliseconds. It's like:
int main()
{
  do{
   doSomething();
   delay(250);
  }while(1)
}
The delay in main loop is crucial for my program to operate. I need to check something else using 5ms delays.
sideJob()
{
   while(1){
    checkSomething();
    delay(5);
   }
}
How do I define the function sideJob to run at the same with the main loop. All in all, I need to get the hang of threading by using, if possible, simple functions. I'm using Linux. Any help will be greately appreaciated.
EDIT: This is what I got so far, But I want to run the sideJob and main thread at the same time.
#include <string>
#include <iostream>
#include <thread>
using namespace std;
//The function we want to make the thread run.
void task1(string msg)
{
     cout << "sideJob Running " << msg;
}
int main()
{  
    // Constructs the new thread and runs it. Does not block execution.
    thread t1(task1, "Hello");
    //Makes the main thread wait for the new thread to finish execution, therefore blocks its own execution.
    t1.join();
    while(1){
        printf("Continuous Job\n");   
    }
}
 
     
    