Advertisement
Guest User

Untitled

a guest
Apr 11th, 2014
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.56 KB | None | 0 0
  1. #include <iostream>
  2. #include <thread>
  3. #include <mutex>
  4. #include <memory>
  5. #include <atomic>
  6. #include <functional>
  7. #include <boost/lockfree/queue.hpp>
  8. #include <array>
  9.  
  10.  
  11.  
  12. // #include "lockfreequeue.h"
  13.  
  14. using std::endl; using std::cerr;
  15. using std::cout ; using std::cin;
  16. using std::mutex; using std::atomic;
  17. using std::array; using std::function;
  18. using std::pair; using std::thread;
  19.  
  20. template <int NN> using guardedArray = array<pair<atomic<uint8_t>,function<void()>>, NN> ;
  21.  
  22. template <typename T> using lockfreequeue = boost::lockfree::queue<T,boost::lockfree::capacity<1000>>;
  23.  
  24.  
  25.  
  26.  
  27. mutex mm;
  28.  
  29. class Functor{
  30. int myNN;
  31. public:
  32. Functor(int nn):myNN(nn){};
  33. Functor(function<void()> ff) : myff(ff){};
  34. function<void()> myff;
  35. Functor(const Functor&) = default;
  36. Functor operator=(const Functor&) ;
  37. ~Functor() = default;
  38. void operator()(){
  39. myff();
  40.  
  41. }
  42. };
  43.  
  44.  
  45.  
  46. template <int NN > class GuardedArray{
  47.  
  48. bool endFlag;
  49. guardedArray<NN> myGuardedArray;
  50. public:
  51. GuardedArray():garbageCollectorThread(&GuardedArray::garbageCollectorFunction,this),endFlag(false){ };
  52.  
  53. ~GuardedArray(){ endFlag = true; garbageCollectorThread.join(); };
  54.  
  55. void markDone(int ii ){ myGuardedArray[ii].first.store(2) ;};
  56. int insertObject(function<void()> ff){
  57. int kk ;
  58. uint8_t empty ;
  59.  
  60. do{
  61. kk = rand () % NN;
  62. empty = myGuardedArray[kk].first.load();
  63.  
  64. cout << "spining ... " << endl;
  65.  
  66.  
  67. }while(!((empty == 0 ) && (atomic_compare_exchange_weak(&myGuardedArray[kk].first,&empty,uint8_t(1)))));
  68. myGuardedArray[kk].second = ff;
  69. return kk;
  70. };
  71. function<void()> getIndex(int ii){return myGuardedArray[ii].second ; };
  72. thread garbageCollectorThread;
  73. void garbageCollectorFunction(){
  74. while(!endFlag){
  75. for (int ii = 0 ; ii < NN ; ++ii){
  76. if(myGuardedArray[ii].first == 2){
  77. myGuardedArray[ii].second = function<void()>();
  78. myGuardedArray[ii].first.store(0);
  79. }
  80. }
  81. }
  82. };
  83.  
  84.  
  85. };
  86.  
  87. template <int NN > class ThreadPool{
  88.  
  89. private:
  90. thread tt[NN];
  91. GuardedArray<1000> myGA;
  92. bool endFlag;
  93. public:
  94. ThreadPool():endFlag(false){
  95.  
  96. for(int ii = 0 ; ii < NN ; ++ii){
  97. thread localThread(&ThreadPool<NN>:: threadLoop, this);
  98. tt[ii].swap(localThread);
  99.  
  100. }
  101.  
  102. };
  103. void bookTask(function<void()> ff){
  104. int ii = myGA.insertObject(ff);
  105. mySync.push(ii);
  106. };
  107.  
  108. bool demandedAccess[NN];
  109. int waitingProcess;
  110. ~ThreadPool() {endFlag = true; for (int ii = 0 ; ii < NN ; ii++ ){ tt[ii].join();} };
  111. int myWrapper();
  112. void threadLoop();
  113. lockfreequeue<int> mySync;
  114.  
  115. };
  116.  
  117. template <int NN> void ThreadPool<NN>::threadLoop(){
  118. thread::id kk = std::this_thread::get_id();
  119. function<void()> fun ;
  120. int ff;
  121. while(!endFlag){
  122.  
  123. if(!mySync.empty()){
  124.  
  125. bool result = mySync.pop(ff);
  126. if(result){
  127. fun = myGA.getIndex(ff);
  128. fun();
  129. myGA.markDone(ff);
  130. }
  131.  
  132. }
  133. }
  134. }
  135.  
  136.  
  137. uint64_t factorial(uint64_t x ) {
  138. if (x == 0 )
  139. return 1;
  140. else return x * factorial(x-1);
  141.  
  142. }
  143.  
  144.  
  145. void print_factorial(int x){
  146. cout << factorial(x) << endl;
  147. }
  148.  
  149. int main(int argc, char** argv){
  150.  
  151. ThreadPool<6> tp;
  152. // Functor ff(( [](){ cout <<"a kuku "<<endl; }));
  153.  
  154.  
  155.  
  156. tp.bookTask(std::bind(print_factorial,8) );
  157. tp.bookTask(std::bind(print_factorial,0) );
  158. tp.bookTask(std::bind(print_factorial,6) );
  159. tp.bookTask(std::bind(print_factorial,5) );
  160. tp.bookTask(std::bind(print_factorial,6) );
  161. tp.bookTask(std::bind(print_factorial,3) );
  162. tp.bookTask(std::bind(print_factorial,5) );
  163. tp.bookTask(std::bind(print_factorial,7) );
  164. tp.bookTask(std::bind(print_factorial,8) );
  165. tp.bookTask(std::bind(print_factorial,9) );
  166. tp.bookTask(std::bind(print_factorial,5) );
  167. tp.bookTask(std::bind(print_factorial,5) );
  168. tp.bookTask(std::bind(print_factorial,6) );
  169. tp.bookTask(std::bind(print_factorial,3) );
  170. tp.bookTask(std::bind(print_factorial,5) );
  171. tp.bookTask(std::bind(print_factorial,8) );
  172. tp.bookTask(std::bind(print_factorial,0) );
  173. tp.bookTask(std::bind(print_factorial,6) );
  174. tp.bookTask(std::bind(print_factorial,5) );
  175. tp.bookTask(std::bind(print_factorial,6) );
  176. tp.bookTask(std::bind(print_factorial,3) );
  177. tp.bookTask(std::bind(print_factorial,5) );
  178. tp.bookTask(std::bind(print_factorial,7) );
  179. tp.bookTask(std::bind(print_factorial,8) );
  180. tp.bookTask(std::bind(print_factorial,9) );
  181. tp.bookTask(std::bind(print_factorial,5) );
  182. tp.bookTask(std::bind(print_factorial,5) );
  183. tp.bookTask(std::bind(print_factorial,6) );
  184. tp.bookTask(std::bind(print_factorial,3) );
  185. tp.bookTask(std::bind(print_factorial,5) );
  186. tp.bookTask(std::bind(print_factorial,8) );
  187. tp.bookTask(std::bind(print_factorial,0) );
  188. tp.bookTask(std::bind(print_factorial,6) );
  189. tp.bookTask(std::bind(print_factorial,5) );
  190. tp.bookTask(std::bind(print_factorial,6) );
  191. tp.bookTask(std::bind(print_factorial,3) );
  192. tp.bookTask(std::bind(print_factorial,5) );
  193. tp.bookTask(std::bind(print_factorial,7) );
  194. tp.bookTask(std::bind(print_factorial,8) );
  195. tp.bookTask(std::bind(print_factorial,9) );
  196. tp.bookTask(std::bind(print_factorial,5) );
  197. tp.bookTask(std::bind(print_factorial,5) );
  198. tp.bookTask(std::bind(print_factorial,6) );
  199. tp.bookTask(std::bind(print_factorial,3) );
  200. tp.bookTask(std::bind(print_factorial,5) );
  201. tp.bookTask(std::bind(print_factorial,8) );
  202. tp.bookTask(std::bind(print_factorial,0) );
  203. tp.bookTask(std::bind(print_factorial,6) );
  204. tp.bookTask(std::bind(print_factorial,5) );
  205. tp.bookTask(std::bind(print_factorial,6) );
  206. tp.bookTask(std::bind(print_factorial,3) );
  207. tp.bookTask(std::bind(print_factorial,5) );
  208. tp.bookTask(std::bind(print_factorial,7) );
  209. tp.bookTask(std::bind(print_factorial,8) );
  210. tp.bookTask(std::bind(print_factorial,9) );
  211. tp.bookTask(std::bind(print_factorial,5) );
  212. tp.bookTask(std::bind(print_factorial,15) );
  213. tp.bookTask(std::bind(print_factorial,6) );
  214. tp.bookTask(std::bind(print_factorial,3) );
  215. tp.bookTask(std::bind(print_factorial,5) );
  216. tp.bookTask(std::bind(print_factorial,8) );
  217. tp.bookTask(std::bind(print_factorial,10) );
  218. tp.bookTask(std::bind(print_factorial,6) );
  219. tp.bookTask(std::bind(print_factorial,5) );
  220. tp.bookTask(std::bind(print_factorial,6) );
  221. tp.bookTask(std::bind(print_factorial,3) );
  222. tp.bookTask(std::bind(print_factorial,5) );
  223. tp.bookTask(std::bind(print_factorial,7) );
  224. tp.bookTask(std::bind(print_factorial,8) );
  225. tp.bookTask(std::bind(print_factorial,9) );
  226. tp.bookTask(std::bind(print_factorial,5) );
  227. tp.bookTask(std::bind(print_factorial,5) );
  228. tp.bookTask(std::bind(print_factorial,6) );
  229. tp.bookTask(std::bind(print_factorial,3) );
  230. tp.bookTask(std::bind(print_factorial,5) );
  231. tp.bookTask(std::bind(print_factorial,8) );
  232. tp.bookTask(std::bind(print_factorial,0) );
  233. tp.bookTask(std::bind(print_factorial,6) );
  234. tp.bookTask(std::bind(print_factorial,5) );
  235. tp.bookTask(std::bind(print_factorial,16) );
  236. tp.bookTask(std::bind(print_factorial,3) );
  237. tp.bookTask(std::bind(print_factorial,5) );
  238. tp.bookTask(std::bind(print_factorial,7) );
  239. tp.bookTask(std::bind(print_factorial,8) );
  240. tp.bookTask(std::bind(print_factorial,9) );
  241. tp.bookTask(std::bind(print_factorial,15) );
  242. tp.bookTask(std::bind(print_factorial,5) );
  243. tp.bookTask(std::bind(print_factorial,6) );
  244. tp.bookTask(std::bind(print_factorial,3) );
  245. tp.bookTask(std::bind(print_factorial,5) );
  246. tp.bookTask(std::bind(print_factorial,8) );
  247. tp.bookTask(std::bind(print_factorial,0) );
  248. tp.bookTask(std::bind(print_factorial,16) );
  249. tp.bookTask(std::bind(print_factorial,5) );
  250. tp.bookTask(std::bind(print_factorial,6) );
  251. tp.bookTask(std::bind(print_factorial,3) );
  252. tp.bookTask(std::bind(print_factorial,5) );
  253. tp.bookTask(std::bind(print_factorial,7) );
  254. tp.bookTask(std::bind(print_factorial,8) );
  255. tp.bookTask(std::bind(print_factorial,9) );
  256. tp.bookTask(std::bind(print_factorial,5) );
  257. tp.bookTask(std::bind(print_factorial,5) );
  258. tp.bookTask(std::bind(print_factorial,6) );
  259. tp.bookTask(std::bind(print_factorial,3) );
  260. tp.bookTask(std::bind(print_factorial,5) );
  261. tp.bookTask(std::bind(print_factorial,8) );
  262. tp.bookTask(std::bind(print_factorial,0) );
  263. tp.bookTask(std::bind(print_factorial,6) );
  264. tp.bookTask(std::bind(print_factorial,15) );
  265. tp.bookTask(std::bind(print_factorial,6) );
  266. tp.bookTask(std::bind(print_factorial,3) );
  267. tp.bookTask(std::bind(print_factorial,15) );
  268. tp.bookTask(std::bind(print_factorial,7) );
  269. tp.bookTask(std::bind(print_factorial,8) );
  270. tp.bookTask(std::bind(print_factorial,9) );
  271. tp.bookTask(std::bind(print_factorial,5) );
  272. tp.bookTask(std::bind(print_factorial,5) );
  273. tp.bookTask(std::bind(print_factorial,6) );
  274. tp.bookTask(std::bind(print_factorial,3) );
  275. tp.bookTask(std::bind(print_factorial,5) );
  276. tp.bookTask(std::bind(print_factorial,8) );
  277. tp.bookTask(std::bind(print_factorial,0) );
  278. tp.bookTask(std::bind(print_factorial,6) );
  279. tp.bookTask(std::bind(print_factorial,5) );
  280. tp.bookTask(std::bind(print_factorial,6) );
  281. tp.bookTask(std::bind(print_factorial,3) );
  282. tp.bookTask(std::bind(print_factorial,5) );
  283. tp.bookTask(std::bind(print_factorial,7) );
  284. tp.bookTask(std::bind(print_factorial,8) );
  285. tp.bookTask(std::bind(print_factorial,9) );
  286. tp.bookTask(std::bind(print_factorial,5) );
  287. tp.bookTask(std::bind(print_factorial,5) );
  288. tp.bookTask(std::bind(print_factorial,6) );
  289. tp.bookTask(std::bind(print_factorial,3) );
  290. tp.bookTask(std::bind(print_factorial,5) );
  291. tp.bookTask(std::bind(print_factorial,8) );
  292. tp.bookTask(std::bind(print_factorial,0) );
  293. tp.bookTask(std::bind(print_factorial,6) );
  294. tp.bookTask(std::bind(print_factorial,5) );
  295. tp.bookTask(std::bind(print_factorial,6) );
  296. tp.bookTask(std::bind(print_factorial,3) );
  297. tp.bookTask(std::bind(print_factorial,5) );
  298. tp.bookTask(std::bind(print_factorial,7) );
  299. tp.bookTask(std::bind(print_factorial,8) );
  300. tp.bookTask(std::bind(print_factorial,9) );
  301. tp.bookTask(std::bind(print_factorial,5) );
  302. tp.bookTask(std::bind(print_factorial,5) );
  303. tp.bookTask(std::bind(print_factorial,6) );
  304. tp.bookTask(std::bind(print_factorial,3) );
  305. tp.bookTask(std::bind(print_factorial,5) );
  306. tp.bookTask(std::bind(print_factorial,8) );
  307. tp.bookTask(std::bind(print_factorial,0) );
  308. tp.bookTask(std::bind(print_factorial,6) );
  309. tp.bookTask(std::bind(print_factorial,5) );
  310. tp.bookTask(std::bind(print_factorial,6) );
  311. tp.bookTask(std::bind(print_factorial,3) );
  312. tp.bookTask(std::bind(print_factorial,5) );
  313. tp.bookTask(std::bind(print_factorial,7) );
  314. tp.bookTask(std::bind(print_factorial,8) );
  315. tp.bookTask(std::bind(print_factorial,9) );
  316. tp.bookTask(std::bind(print_factorial,5) );
  317. tp.bookTask(std::bind(print_factorial,5) );
  318. tp.bookTask(std::bind(print_factorial,6) );
  319. tp.bookTask(std::bind(print_factorial,3) );
  320. tp.bookTask(std::bind(print_factorial,5) );
  321. tp.bookTask(std::bind(print_factorial,8) );
  322. tp.bookTask(std::bind(print_factorial,0) );
  323. tp.bookTask(std::bind(print_factorial,6) );
  324. tp.bookTask(std::bind(print_factorial,5) );
  325. tp.bookTask(std::bind(print_factorial,6) );
  326. tp.bookTask(std::bind(print_factorial,3) );
  327. tp.bookTask(std::bind(print_factorial,5) );
  328. tp.bookTask(std::bind(print_factorial,7) );
  329. tp.bookTask(std::bind(print_factorial,8) );
  330. tp.bookTask(std::bind(print_factorial,9) );
  331. tp.bookTask(std::bind(print_factorial,5) );
  332. tp.bookTask(std::bind(print_factorial,15) );
  333. tp.bookTask(std::bind(print_factorial,6) );
  334. tp.bookTask(std::bind(print_factorial,3) );
  335. tp.bookTask(std::bind(print_factorial,5) );
  336. tp.bookTask(std::bind(print_factorial,8) );
  337. tp.bookTask(std::bind(print_factorial,10) );
  338. tp.bookTask(std::bind(print_factorial,6) );
  339. tp.bookTask(std::bind(print_factorial,5) );
  340. tp.bookTask(std::bind(print_factorial,6) );
  341. tp.bookTask(std::bind(print_factorial,3) );
  342. tp.bookTask(std::bind(print_factorial,5) );
  343. tp.bookTask(std::bind(print_factorial,7) );
  344. tp.bookTask(std::bind(print_factorial,8) );
  345. tp.bookTask(std::bind(print_factorial,9) );
  346. tp.bookTask(std::bind(print_factorial,5) );
  347. tp.bookTask(std::bind(print_factorial,5) );
  348. tp.bookTask(std::bind(print_factorial,6) );
  349. tp.bookTask(std::bind(print_factorial,3) );
  350. tp.bookTask(std::bind(print_factorial,5) );
  351. tp.bookTask(std::bind(print_factorial,8) );
  352. tp.bookTask(std::bind(print_factorial,0) );
  353. tp.bookTask(std::bind(print_factorial,6) );
  354. tp.bookTask(std::bind(print_factorial,5) );
  355. tp.bookTask(std::bind(print_factorial,16) );
  356. tp.bookTask(std::bind(print_factorial,3) );
  357. tp.bookTask(std::bind(print_factorial,5) );
  358. tp.bookTask(std::bind(print_factorial,7) );
  359. tp.bookTask(std::bind(print_factorial,8) );
  360. tp.bookTask(std::bind(print_factorial,9) );
  361. tp.bookTask(std::bind(print_factorial,15) );
  362. tp.bookTask(std::bind(print_factorial,5) );
  363. tp.bookTask(std::bind(print_factorial,6) );
  364. tp.bookTask(std::bind(print_factorial,3) );
  365. tp.bookTask(std::bind(print_factorial,5) );
  366. tp.bookTask(std::bind(print_factorial,8) );
  367. tp.bookTask(std::bind(print_factorial,0) );
  368. tp.bookTask(std::bind(print_factorial,16) );
  369. tp.bookTask(std::bind(print_factorial,5) );
  370. tp.bookTask(std::bind(print_factorial,6) );
  371. tp.bookTask(std::bind(print_factorial,3) );
  372. tp.bookTask(std::bind(print_factorial,5) );
  373. tp.bookTask(std::bind(print_factorial,7) );
  374. tp.bookTask(std::bind(print_factorial,8) );
  375. tp.bookTask(std::bind(print_factorial,9) );
  376. tp.bookTask(std::bind(print_factorial,5) );
  377. tp.bookTask(std::bind(print_factorial,5) );
  378. tp.bookTask(std::bind(print_factorial,6) );
  379. tp.bookTask(std::bind(print_factorial,3) );
  380. tp.bookTask(std::bind(print_factorial,5) );
  381. tp.bookTask(std::bind(print_factorial,8) );
  382. tp.bookTask(std::bind(print_factorial,0) );
  383. tp.bookTask(std::bind(print_factorial,6) );
  384. tp.bookTask(std::bind(print_factorial,15) );
  385. tp.bookTask(std::bind(print_factorial,6) );
  386. tp.bookTask(std::bind(print_factorial,3) );
  387. tp.bookTask(std::bind(print_factorial,15) );
  388. tp.bookTask(std::bind(print_factorial,7) );
  389. tp.bookTask(std::bind(print_factorial,8) );
  390. tp.bookTask(std::bind(print_factorial,9) );
  391. tp.bookTask(std::bind(print_factorial,5) );
  392. tp.bookTask(std::bind(print_factorial,5) );
  393. tp.bookTask(std::bind(print_factorial,6) );
  394. tp.bookTask(std::bind(print_factorial,3) );
  395. tp.bookTask(std::bind(print_factorial,5) );
  396. tp.bookTask(std::bind(print_factorial,8) );
  397. tp.bookTask(std::bind(print_factorial,0) );
  398. tp.bookTask(std::bind(print_factorial,6) );
  399. tp.bookTask(std::bind(print_factorial,5) );
  400. tp.bookTask(std::bind(print_factorial,6) );
  401. tp.bookTask(std::bind(print_factorial,3) );
  402. tp.bookTask(std::bind(print_factorial,5) );
  403. tp.bookTask(std::bind(print_factorial,7) );
  404. tp.bookTask(std::bind(print_factorial,8) );
  405. tp.bookTask(std::bind(print_factorial,9) );
  406. tp.bookTask(std::bind(print_factorial,5) );
  407. tp.bookTask(std::bind(print_factorial,5) );
  408. tp.bookTask(std::bind(print_factorial,6) );
  409. tp.bookTask(std::bind(print_factorial,3) );
  410. tp.bookTask(std::bind(print_factorial,5) );
  411. tp.bookTask(std::bind(print_factorial,8) );
  412. tp.bookTask(std::bind(print_factorial,0) );
  413. tp.bookTask(std::bind(print_factorial,6) );
  414. tp.bookTask(std::bind(print_factorial,5) );
  415. tp.bookTask(std::bind(print_factorial,6) );
  416. tp.bookTask(std::bind(print_factorial,3) );
  417. tp.bookTask(std::bind(print_factorial,5) );
  418. tp.bookTask(std::bind(print_factorial,7) );
  419. tp.bookTask(std::bind(print_factorial,8) );
  420. tp.bookTask(std::bind(print_factorial,9) );
  421. tp.bookTask(std::bind(print_factorial,5) );
  422. tp.bookTask(std::bind(print_factorial,5) );
  423. tp.bookTask(std::bind(print_factorial,6) );
  424. tp.bookTask(std::bind(print_factorial,3) );
  425. tp.bookTask(std::bind(print_factorial,5) );
  426. tp.bookTask(std::bind(print_factorial,8) );
  427. tp.bookTask(std::bind(print_factorial,0) );
  428. tp.bookTask(std::bind(print_factorial,6) );
  429. tp.bookTask(std::bind(print_factorial,5) );
  430. tp.bookTask(std::bind(print_factorial,6) );
  431. tp.bookTask(std::bind(print_factorial,3) );
  432. tp.bookTask(std::bind(print_factorial,5) );
  433. tp.bookTask(std::bind(print_factorial,7) );
  434. tp.bookTask(std::bind(print_factorial,8) );
  435. tp.bookTask(std::bind(print_factorial,9) );
  436. tp.bookTask(std::bind(print_factorial,5) );
  437. tp.bookTask(std::bind(print_factorial,5) );
  438. tp.bookTask(std::bind(print_factorial,6) );
  439. tp.bookTask(std::bind(print_factorial,3) );
  440. tp.bookTask(std::bind(print_factorial,5) );
  441. tp.bookTask(std::bind(print_factorial,8) );
  442. tp.bookTask(std::bind(print_factorial,0) );
  443. tp.bookTask(std::bind(print_factorial,6) );
  444. tp.bookTask(std::bind(print_factorial,5) );
  445. tp.bookTask(std::bind(print_factorial,6) );
  446. tp.bookTask(std::bind(print_factorial,3) );
  447. tp.bookTask(std::bind(print_factorial,5) );
  448. tp.bookTask(std::bind(print_factorial,7) );
  449. tp.bookTask(std::bind(print_factorial,8) );
  450. tp.bookTask(std::bind(print_factorial,9) );
  451. tp.bookTask(std::bind(print_factorial,5) );
  452. tp.bookTask(std::bind(print_factorial,15) );
  453. tp.bookTask(std::bind(print_factorial,6) );
  454. tp.bookTask(std::bind(print_factorial,3) );
  455. tp.bookTask(std::bind(print_factorial,5) );
  456. tp.bookTask(std::bind(print_factorial,8) );
  457. tp.bookTask(std::bind(print_factorial,10) );
  458. tp.bookTask(std::bind(print_factorial,6) );
  459. tp.bookTask(std::bind(print_factorial,5) );
  460. tp.bookTask(std::bind(print_factorial,6) );
  461. tp.bookTask(std::bind(print_factorial,3) );
  462. tp.bookTask(std::bind(print_factorial,5) );
  463. tp.bookTask(std::bind(print_factorial,7) );
  464. tp.bookTask(std::bind(print_factorial,8) );
  465. tp.bookTask(std::bind(print_factorial,9) );
  466. tp.bookTask(std::bind(print_factorial,5) );
  467. tp.bookTask(std::bind(print_factorial,5) );
  468. tp.bookTask(std::bind(print_factorial,6) );
  469. tp.bookTask(std::bind(print_factorial,3) );
  470. tp.bookTask(std::bind(print_factorial,5) );
  471. tp.bookTask(std::bind(print_factorial,8) );
  472. tp.bookTask(std::bind(print_factorial,0) );
  473. tp.bookTask(std::bind(print_factorial,6) );
  474. tp.bookTask(std::bind(print_factorial,5) );
  475. tp.bookTask(std::bind(print_factorial,16) );
  476. tp.bookTask(std::bind(print_factorial,3) );
  477. tp.bookTask(std::bind(print_factorial,5) );
  478. tp.bookTask(std::bind(print_factorial,7) );
  479. tp.bookTask(std::bind(print_factorial,8) );
  480. tp.bookTask(std::bind(print_factorial,9) );
  481. tp.bookTask(std::bind(print_factorial,1) );
  482. tp.bookTask(std::bind(print_factorial,5) );
  483. tp.bookTask(std::bind(print_factorial,6) );
  484. tp.bookTask(std::bind(print_factorial,3) );
  485. tp.bookTask(std::bind(print_factorial,5) );
  486. tp.bookTask(std::bind(print_factorial,8) );
  487. tp.bookTask(std::bind(print_factorial,0) );
  488. tp.bookTask(std::bind(print_factorial,1) );
  489. tp.bookTask(std::bind(print_factorial,5) );
  490. tp.bookTask(std::bind(print_factorial,6) );
  491. tp.bookTask(std::bind(print_factorial,3) );
  492. tp.bookTask(std::bind(print_factorial,5) );
  493. tp.bookTask(std::bind(print_factorial,7) );
  494. tp.bookTask(std::bind(print_factorial,8) );
  495. tp.bookTask(std::bind(print_factorial,9) );
  496. tp.bookTask(std::bind(print_factorial,5) );
  497. tp.bookTask(std::bind(print_factorial,5) );
  498. tp.bookTask(std::bind(print_factorial,6) );
  499. tp.bookTask(std::bind(print_factorial,3) );
  500. tp.bookTask(std::bind(print_factorial,5) );
  501. tp.bookTask(std::bind(print_factorial,8) );
  502. tp.bookTask(std::bind(print_factorial,0) );
  503. tp.bookTask(std::bind(print_factorial,6) );
  504. tp.bookTask(std::bind(print_factorial,1) );
  505. tp.bookTask(std::bind(print_factorial,6) );
  506. tp.bookTask(std::bind(print_factorial,3) );
  507. tp.bookTask(std::bind(print_factorial,1) );
  508. tp.bookTask(std::bind(print_factorial,7) );
  509. tp.bookTask(std::bind(print_factorial,8) );
  510. tp.bookTask(std::bind(print_factorial,9) );
  511. tp.bookTask(std::bind(print_factorial,5) );
  512. tp.bookTask(std::bind(print_factorial,5) );
  513. tp.bookTask(std::bind(print_factorial,6) );
  514. tp.bookTask(std::bind(print_factorial,3) );
  515. tp.bookTask(std::bind(print_factorial,5) );
  516. tp.bookTask(std::bind(print_factorial,8) );
  517. tp.bookTask(std::bind(print_factorial,0) );
  518. tp.bookTask(std::bind(print_factorial,6) );
  519. tp.bookTask(std::bind(print_factorial,5) );
  520. tp.bookTask(std::bind(print_factorial,6) );
  521. tp.bookTask(std::bind(print_factorial,3) );
  522. tp.bookTask(std::bind(print_factorial,5) );
  523. tp.bookTask(std::bind(print_factorial,7) );
  524. tp.bookTask(std::bind(print_factorial,8) );
  525. tp.bookTask(std::bind(print_factorial,9) );
  526. tp.bookTask(std::bind(print_factorial,5) );
  527. tp.bookTask(std::bind(print_factorial,5) );
  528. tp.bookTask(std::bind(print_factorial,6) );
  529. tp.bookTask(std::bind(print_factorial,3) );
  530. tp.bookTask(std::bind(print_factorial,5) );
  531. tp.bookTask(std::bind(print_factorial,8) );
  532. tp.bookTask(std::bind(print_factorial,0) );
  533. tp.bookTask(std::bind(print_factorial,6) );
  534. tp.bookTask(std::bind(print_factorial,5) );
  535. tp.bookTask(std::bind(print_factorial,6) );
  536. tp.bookTask(std::bind(print_factorial,3) );
  537. tp.bookTask(std::bind(print_factorial,5) );
  538. tp.bookTask(std::bind(print_factorial,7) );
  539. tp.bookTask(std::bind(print_factorial,8) );
  540. tp.bookTask(std::bind(print_factorial,9) );
  541. tp.bookTask(std::bind(print_factorial,5) );
  542. tp.bookTask(std::bind(print_factorial,5) );
  543. tp.bookTask(std::bind(print_factorial,6) );
  544. tp.bookTask(std::bind(print_factorial,3) );
  545. tp.bookTask(std::bind(print_factorial,5) );
  546. tp.bookTask(std::bind(print_factorial,8) );
  547. tp.bookTask(std::bind(print_factorial,0) );
  548. tp.bookTask(std::bind(print_factorial,6) );
  549. tp.bookTask(std::bind(print_factorial,5) );
  550. tp.bookTask(std::bind(print_factorial,6) );
  551. tp.bookTask(std::bind(print_factorial,3) );
  552. tp.bookTask(std::bind(print_factorial,5) );
  553. tp.bookTask(std::bind(print_factorial,7) );
  554. tp.bookTask(std::bind(print_factorial,8) );
  555. tp.bookTask(std::bind(print_factorial,9) );
  556. tp.bookTask(std::bind(print_factorial,5) );
  557. tp.bookTask(std::bind(print_factorial,5) );
  558. tp.bookTask(std::bind(print_factorial,6) );
  559. tp.bookTask(std::bind(print_factorial,3) );
  560. tp.bookTask(std::bind(print_factorial,5) );
  561. tp.bookTask(std::bind(print_factorial,8) );
  562. tp.bookTask(std::bind(print_factorial,0) );
  563. tp.bookTask(std::bind(print_factorial,6) );
  564. tp.bookTask(std::bind(print_factorial,5) );
  565. tp.bookTask(std::bind(print_factorial,6) );
  566. tp.bookTask(std::bind(print_factorial,3) );
  567. tp.bookTask(std::bind(print_factorial,5) );
  568. tp.bookTask(std::bind(print_factorial,7) );
  569. tp.bookTask(std::bind(print_factorial,8) );
  570. tp.bookTask(std::bind(print_factorial,9) );
  571. tp.bookTask(std::bind(print_factorial,5) );
  572. tp.bookTask(std::bind(print_factorial,1) );
  573. tp.bookTask(std::bind(print_factorial,6) );
  574. tp.bookTask(std::bind(print_factorial,3) );
  575. tp.bookTask(std::bind(print_factorial,5) );
  576. tp.bookTask(std::bind(print_factorial,8) );
  577. tp.bookTask(std::bind(print_factorial,1) );
  578. tp.bookTask(std::bind(print_factorial,6) );
  579. tp.bookTask(std::bind(print_factorial,5) );
  580. tp.bookTask(std::bind(print_factorial,6) );
  581. tp.bookTask(std::bind(print_factorial,3) );
  582. tp.bookTask(std::bind(print_factorial,5) );
  583. tp.bookTask(std::bind(print_factorial,7) );
  584. tp.bookTask(std::bind(print_factorial,8) );
  585. tp.bookTask(std::bind(print_factorial,9) );
  586. tp.bookTask(std::bind(print_factorial,5) );
  587. tp.bookTask(std::bind(print_factorial,5) );
  588. tp.bookTask(std::bind(print_factorial,6) );
  589. tp.bookTask(std::bind(print_factorial,3) );
  590. tp.bookTask(std::bind(print_factorial,5) );
  591. tp.bookTask(std::bind(print_factorial,8) );
  592. tp.bookTask(std::bind(print_factorial,0) );
  593. tp.bookTask(std::bind(print_factorial,6) );
  594. tp.bookTask(std::bind(print_factorial,5) );
  595. tp.bookTask(std::bind(print_factorial,1) );
  596. tp.bookTask(std::bind(print_factorial,3) );
  597. tp.bookTask(std::bind(print_factorial,5) );
  598. tp.bookTask(std::bind(print_factorial,7) );
  599. tp.bookTask(std::bind(print_factorial,8) );
  600. tp.bookTask(std::bind(print_factorial,9) );
  601. tp.bookTask(std::bind(print_factorial,1) );
  602. tp.bookTask(std::bind(print_factorial,5) );
  603. tp.bookTask(std::bind(print_factorial,6) );
  604. tp.bookTask(std::bind(print_factorial,3) );
  605. tp.bookTask(std::bind(print_factorial,5) );
  606. tp.bookTask(std::bind(print_factorial,8) );
  607. tp.bookTask(std::bind(print_factorial,0) );
  608. tp.bookTask(std::bind(print_factorial,1) );
  609. tp.bookTask(std::bind(print_factorial,5) );
  610. tp.bookTask(std::bind(print_factorial,6) );
  611. tp.bookTask(std::bind(print_factorial,3) );
  612. tp.bookTask(std::bind(print_factorial,5) );
  613. tp.bookTask(std::bind(print_factorial,7) );
  614. tp.bookTask(std::bind(print_factorial,8) );
  615. tp.bookTask(std::bind(print_factorial,9) );
  616. tp.bookTask(std::bind(print_factorial,5) );
  617. tp.bookTask(std::bind(print_factorial,5) );
  618. tp.bookTask(std::bind(print_factorial,6) );
  619. tp.bookTask(std::bind(print_factorial,3) );
  620. tp.bookTask(std::bind(print_factorial,5) );
  621. tp.bookTask(std::bind(print_factorial,8) );
  622. tp.bookTask(std::bind(print_factorial,0) );
  623. tp.bookTask(std::bind(print_factorial,6) );
  624. tp.bookTask(std::bind(print_factorial,1) );
  625. tp.bookTask(std::bind(print_factorial,6) );
  626. tp.bookTask(std::bind(print_factorial,3) );
  627. tp.bookTask(std::bind(print_factorial,1) );
  628. tp.bookTask(std::bind(print_factorial,7) );
  629. tp.bookTask(std::bind(print_factorial,8) );
  630. tp.bookTask(std::bind(print_factorial,9) );
  631. tp.bookTask(std::bind(print_factorial,5) );
  632. tp.bookTask(std::bind(print_factorial,5) );
  633. tp.bookTask(std::bind(print_factorial,6) );
  634. tp.bookTask(std::bind(print_factorial,3) );
  635. tp.bookTask(std::bind(print_factorial,5) );
  636.  
  637.  
  638.  
  639.  
  640. // tp.bookTask(print_factorial,5);
  641. // tp.bookTask(print_factorial,5);
  642. // tp.bookTask(print_factorial,5);
  643. // tp.bookTask(print_factorial,5);
  644. // tp.bookTask(print_factorial,5);
  645.  
  646.  
  647.  
  648. std::this_thread::sleep_for(std::chrono::seconds(10));
  649.  
  650. return 0 ;
  651. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement