fork(5) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. const unsigned int NUMELEM = 20;
  5. const unsigned int THREADCNT = 6;
  6.  
  7. int Data[NUMELEM];
  8.  
  9. void DoStuff( unsigned int const& thid )
  10. {
  11. cout<<"ThID:"<<thid<<endl;
  12. const unsigned numTasks = NUMELEM/THREADCNT, numTougherThreads = NUMELEM%THREADCNT;
  13. for( unsigned int index0 = (thid < numTougherThreads ? thid * (numTasks+1) : NUMELEM - (THREADCNT - thid) * numTasks), index = index0; index < index0 + numTasks + (thid < numTougherThreads) ; ++index)
  14. {
  15. cout<<"Data["<<index<<"], ";
  16. }
  17. cout<<endl;
  18. }
  19.  
  20. int main()
  21. {
  22. for( unsigned int thid = 0; thid != THREADCNT; thid++)
  23. {
  24. // TBU: Make multithreaded
  25. DoStuff( thid );
  26. }
  27.  
  28. return 0;
  29. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
ThID:0
Data[0], Data[1], Data[2], Data[3], 
ThID:1
Data[4], Data[5], Data[6], Data[7], 
ThID:2
Data[8], Data[9], Data[10], 
ThID:3
Data[11], Data[12], Data[13], 
ThID:4
Data[14], Data[15], Data[16], 
ThID:5
Data[17], Data[18], Data[19],