سلام.یک مثال از thread همراه با کدش گذاشتم.سوال اینه که برنامه ای بنویسید که طبق این دیاگرام توابع اجرا بشوند.توابعی که دریک راستا هستند باید همزمان اجرا شوند.توابع A,B,f ورودی ندارند و ورودی های تابع c و dبه این ترتیب است.اگه امکان داره کد این سوال رو توضیح بدید.ممنون
c (1) ,c(2),…,c(n/2) c(n/2+1),…,c(2n/3) c(2n/3+1),…,c(n) d (1),d(2),d(3
#include<thread>
#include <iostream>
using namespace std;
void A()
{
}
void B()
{
}
void f()
{
}
void c(int i)
{
}
void D(int i)
{
}
void controlD(thread **t,int di,int n)
{
int i;
for(i=di*n/3;i<(di+1)+n/3;i++)
t[i]->join();
D(i+1);
}
int _tmain(int argc, _TCHAR* argv[])
{
int n=10;
thread** T=new thread*[n];//chera T ro 2d dar nazar gereftim?
A();
B();
for(int i=0;i<n;i++)
T[i]=new thread(c,i+1);
thread d1(controlD,T,0,n);//function controlD che kar miknoe?
thread d2(controlD,T,1,n);
thread d3(controlD,T,2,n);
d1.join();//age gharare d1,d2,d3 hamzan ejra beshan ba join kardan ke dg ejraye hamzan mani nadare?kolan mafhom join daghian chie?
d2.join();
d3.join();
f();
for(int i=0;i<n;i++)
delete T[i];
delete []T;
return 0;
}