亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? leader_follower.cpp

?? ACE自適配通信環境(ADAPTIVE Communication Environment)是可以自由使用、開放源碼的面向對象(OO)框架(Framework)
?? CPP
字號:
// leader_follower.cpp,v 1.22 2005/10/03 13:53:17 jwillemsen Exp#include "ace/OS_main.h"#include "ace/OS_NS_unistd.h"#include "ace/ACE.h"#include "ace/Task_T.h"#include "ace/Get_Opt.h"#include "ace/High_Res_Timer.h"#include "ace/Sched_Params.h"#include "ace/Profile_Timer.h"#include "../Latency_Stats.h"static size_t number_of_messages = 100;static size_t message_size = 100;static size_t number_of_threads = 10;static size_t burst_size = 10;static size_t timeout_between_bursts = 1;static size_t leader_available = 0;static size_t messages_in_this_burst = 0;static size_t total_messages_consumed = 0;static size_t burst = 1;static ACE_hrtime_t start_of_burst;enum DEBUGGING_RANGE{  DEBUG_NONE = 0,  DEFAULT = 1,  PRINT_INDIVIDUAL_LATENCY = 2};static DEBUGGING_RANGE debug = DEBUG_NONE;typedef ACE_Task<ACE_SYNCH> TASK;class Leader_Follower_Task : public TASK{public:  Leader_Follower_Task (ACE_SYNCH_MUTEX &mutex,                        ACE_SYNCH_CONDITION &condition);  int svc (void);  size_t messages_consumed_;  ACE_SYNCH_MUTEX &mutex_;  ACE_SYNCH_CONDITION &condition_;  Latency_Stats latency_stats_;  Throughput_Stats throughput_stats_;};Leader_Follower_Task::Leader_Follower_Task (ACE_SYNCH_MUTEX &mutex,                                            ACE_SYNCH_CONDITION &condition)  : messages_consumed_ (0),    mutex_ (mutex),    condition_ (condition){}intLeader_Follower_Task::svc (void){  for (;;)    {      {        ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);        // Wait until there is no leader.        while (leader_available)          {            int result = this->condition_.wait ();            if (result == -1)              {                ACE_ERROR_RETURN ((LM_ERROR,                                   "Leader_Follower_Task::svc (%t) -> %p\n",                                   "wait error"),                                  -1);              }          }        // I am the leader.        leader_available = 1;        //        // We are letting go of the leader follower lock before going        // in the event loop.        //      }      //      // It is ok to modify these shared variables without a lock      // since we are the only leader.      //      int exit_loop = 0;      if (number_of_messages == 0)        {          exit_loop = 1;        }      else        {          if (messages_in_this_burst == burst_size)            {              ++burst;              messages_in_this_burst = 0;              ACE_Time_Value tv (0, timeout_between_bursts);              ACE_OS::sleep (tv);            }          if (messages_in_this_burst == 0)            {              start_of_burst = ACE_OS::gethrtime ();            }          --number_of_messages;          // Burst counter.          ++messages_in_this_burst;          // Global counter.          ++total_messages_consumed;          // Local counter.          ++this->messages_consumed_;          if (debug)            {              ACE_DEBUG ((LM_DEBUG,                          "(%t) burst %d: message %d; overall message %d; message for this thread %d\n",                          burst,                          messages_in_this_burst,                          total_messages_consumed,                          this->messages_consumed_));            }        }      {        ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->mutex_, -1);        // I am no longer the leader.        leader_available = 0;        // Wake up a follower.        this->condition_.signal ();      }      if (exit_loop)        {          break;        }      else        {          //          // Process message here.          //          for (size_t j = 0; j < message_size; ++j)            {              // Eat a little CPU              /* takes about 40.2 usecs on a 167 MHz Ultra2 */              u_long n = 11UL;              ACE::is_prime (n, 2, n / 2);            }          //          // Record stats for this message.          //          ACE_hrtime_t latency_from_start_of_burst =            ACE_OS::gethrtime () - start_of_burst;          this->latency_stats_.sample (latency_from_start_of_burst);          this->throughput_stats_.sample ();          if (debug >= PRINT_INDIVIDUAL_LATENCY)            {#ifndef ACE_LACKS_LONGLONG_T              ACE_DEBUG ((LM_DEBUG,                          "(%t) latency from start of burst: %Q\n",                          latency_from_start_of_burst));#else              ACE_DEBUG ((LM_DEBUG,                          "(%t) latency from start of burst: %u\n",                          latency_from_start_of_burst.lo()));#endif            }        }    }  return 0;}static intparse_args (int argc, ACE_TCHAR *argv[]){  ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("m:s:w:b:t:d:"));  int c;  while ((c = get_opt ()) != -1)    {      switch (c)        {        case 'm':          number_of_messages = ACE_OS::atoi (get_opt.opt_arg ());          break;        case 's':          message_size = ACE_OS::atoi (get_opt.opt_arg ());          break;        case 'w':          number_of_threads = ACE_OS::atoi (get_opt.opt_arg ());          break;        case 'b':          burst_size = ACE_OS::atoi (get_opt.opt_arg ());          break;        case 't':          timeout_between_bursts = ACE_OS::atoi (get_opt.opt_arg ());          break;        case 'd':          debug = static_cast<DEBUGGING_RANGE> (ACE_OS::atoi (get_opt.opt_arg ()));          break;        default:          ACE_ERROR_RETURN ((LM_ERROR,                             "usage: %s\n"                             "\t[-m number of messages]\n"                             "\t[-s message size]\n"                             "\t[-w number of threads]\n"                             "\t[-b burst size]\n"                             "\t[-t timeout between bursts]\n"                             "\t[-d debug]\n",                             argv[0]),                            -1);        }    }  return 0;}intACE_TMAIN (int argc, ACE_TCHAR *argv[]){  int result = parse_args (argc, argv);  if (result != 0)    {      return result;    }  move_to_rt_class ();  ACE_High_Res_Timer::calibrate ();  ACE_SYNCH_MUTEX mutex;  ACE_SYNCH_CONDITION condition (mutex);  // Leader Followers.  Leader_Follower_Task **leader_followers = 0;  ACE_NEW_RETURN (leader_followers,                  Leader_Follower_Task *[number_of_threads],                  -1);  ACE_Profile_Timer timer;  timer.start ();  int priority =    (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO) +     ACE_Sched_Params::priority_max (ACE_SCHED_FIFO)) / 2;  long flags = THR_BOUND | THR_SCHED_FIFO;  // Create and activate them.  size_t i = 0;  for (i = 0; i < number_of_threads; ++i)    {      ACE_NEW_RETURN (leader_followers[i],                      Leader_Follower_Task (mutex,                                            condition),                      -1);      // Activate the leader_followers.      result = leader_followers[i]->activate (flags,                                              1,                                              1,                                              priority);      if (result != 0)        {          flags = THR_BOUND;          priority = ACE_Sched_Params::priority_min (ACE_SCHED_OTHER,                                                     ACE_SCOPE_THREAD);          result = leader_followers[i]->activate (flags,                                                  1,                                                  1,                                                  priority);          if (result != 0)            {              return result;            }        }    }  // Wait for all threads to terminate.  result = ACE_Thread_Manager::instance ()->wait ();  timer.stop ();  ACE_Rusage rusage;  timer.elapsed_rusage (rusage);  Latency_Stats latency;  Throughput_Stats throughput;  for (i = 0; i < number_of_threads; ++i)    {      latency.accumulate (leader_followers[i]->latency_stats_);      throughput.accumulate (leader_followers[i]->throughput_stats_);      ACE_DEBUG ((LM_DEBUG, "Thread[%d]: ", i));      leader_followers[i]->throughput_stats_.dump_results (ACE_TEXT(""), ACE_TEXT(""));    }  ACE_DEBUG ((LM_DEBUG, "\nTotals for latency:\n"));  latency.dump_results (argv[0], ACE_TEXT("latency"));  ACE_DEBUG ((LM_DEBUG, "\nTotals for throughput:\n"));  throughput.dump_results (argv[0], ACE_TEXT("throughput"));#if defined(ACE_HAS_PRUSAGE_T)  ACE_DEBUG ((LM_DEBUG, "\n(%t) Context switches %d/%d\n",              rusage.pr_vctx,              rusage.pr_ictx));#endif /* ACE_HAS_PRUSAGE_T */  for (i = 0; i < number_of_threads; ++i)    {      delete leader_followers[i];    }  delete[] leader_followers;  return result;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线你懂的| 欧美xxxxxxxx| 亚洲最大成人网4388xx| 色综合久久天天| 亚洲欧洲av色图| 东方aⅴ免费观看久久av| 国产香蕉久久精品综合网| 国精产品一区一区三区mba视频 | 在线亚洲精品福利网址导航| 亚洲欧美日韩国产成人精品影院| 成人福利视频在线看| 国产精品久久久久影院老司| www.综合网.com| 亚洲人成在线观看一区二区| 日本韩国精品在线| 亚洲福利一二三区| 7777精品久久久大香线蕉| 日韩精品午夜视频| 欧美v亚洲v综合ⅴ国产v| 国产伦精品一区二区三区免费 | 国产日韩视频一区二区三区| 国产不卡高清在线观看视频| 国产精品久久久久毛片软件| 91影视在线播放| 一区二区三区在线免费| 精品1区2区3区| 日本网站在线观看一区二区三区 | 欧美体内she精高潮| 天天色综合天天| 精品少妇一区二区三区免费观看 | 丁香激情综合国产| 日韩理论在线观看| 欧美午夜不卡在线观看免费| 热久久国产精品| 久久综合九色综合97婷婷女人| 国产精品一级片| 亚洲日本中文字幕区| 欧美羞羞免费网站| 欧美aⅴ一区二区三区视频| 久久久国产精华| 91免费在线播放| 日韩激情av在线| 久久欧美一区二区| 一本到高清视频免费精品| 亚洲成人精品影院| 2024国产精品视频| 色综合天天综合在线视频| 天天色综合成人网| 国产片一区二区| 色88888久久久久久影院按摩 | 国产成a人无v码亚洲福利| 亚洲同性gay激情无套| 欧美日本国产视频| 国产黄人亚洲片| 亚洲国产婷婷综合在线精品| 欧美xxxxxxxx| 91美女在线视频| 麻豆视频观看网址久久| 亚洲欧洲在线观看av| 欧美一区二区三区思思人| 国产·精品毛片| 天天综合色天天综合色h| 久久久久久麻豆| 欧美性受xxxx黑人xyx性爽| 久久99精品国产.久久久久久| 亚洲色图色小说| 欧美不卡一二三| 在线观看网站黄不卡| 激情欧美日韩一区二区| 亚洲一区在线观看免费观看电影高清| 精品裸体舞一区二区三区| 色噜噜久久综合| 国产精品伊人色| 午夜视黄欧洲亚洲| 国产精品美女久久久久久久| 欧美精品粉嫩高潮一区二区| av电影天堂一区二区在线观看| 免费高清成人在线| 一区二区三区视频在线观看| 久久久影视传媒| 欧美男人的天堂一二区| 成人福利在线看| 极品尤物av久久免费看| 亚洲国产精品麻豆| 国产精品人妖ts系列视频| 日韩午夜激情视频| 欧美亚一区二区| 99久精品国产| 国产精品996| 麻豆成人av在线| 亚洲成av人片一区二区三区| 国产精品免费免费| 精品捆绑美女sm三区| 欧美丰满嫩嫩电影| 色综合天天综合网国产成人综合天 | 亚洲激情第一区| 国产免费成人在线视频| 日韩一二在线观看| 欧美亚洲动漫另类| 色哟哟欧美精品| 成人免费毛片app| 国产精品白丝jk黑袜喷水| 日本不卡一二三区黄网| 性感美女久久精品| 亚洲影院理伦片| 亚洲久本草在线中文字幕| 亚洲国产精品ⅴa在线观看| 久久婷婷综合激情| 欧美成人精精品一区二区频| 51精品国自产在线| 欧美日韩大陆在线| 欧美视频一二三区| 欧美色区777第一页| 欧美在线不卡一区| 91在线观看视频| 97久久精品人人做人人爽| 国产精品亚洲综合一区在线观看| 久草在线在线精品观看| 欧美aaaaaa午夜精品| 日本成人超碰在线观看| 日日欢夜夜爽一区| 午夜不卡av在线| 午夜视频在线观看一区二区| 亚洲成av人片| 日韩激情视频在线观看| 日韩激情一二三区| 蜜臀av国产精品久久久久| 蜜桃av一区二区| 美洲天堂一区二卡三卡四卡视频| 日本欧洲一区二区| 免费观看久久久4p| 九九国产精品视频| 国产麻豆成人传媒免费观看| 精品亚洲成av人在线观看| 韩国精品久久久| 国产99久久精品| 9色porny自拍视频一区二区| 99精品国产99久久久久久白柏| 91丨porny丨户外露出| 色狠狠一区二区三区香蕉| 欧美亚洲综合在线| 欧美人动与zoxxxx乱| 91麻豆精品国产91久久久资源速度| 制服丝袜av成人在线看| 欧美va日韩va| 欧美国产日产图区| 日韩美女视频一区二区| 一区二区三区精品视频在线| 婷婷丁香激情综合| 精品亚洲porn| 成人激情动漫在线观看| 91国偷自产一区二区三区观看 | 久久精品一区八戒影视| 国产精品欧美一级免费| 亚洲色图清纯唯美| 午夜精品影院在线观看| 麻豆91在线播放| 懂色一区二区三区免费观看| 91丨九色丨国产丨porny| 欧美日韩国产首页在线观看| 日韩欧美综合在线| 久久精品夜夜夜夜久久| 亚洲欧美日韩一区二区三区在线观看| 亚洲一级二级三级在线免费观看| 琪琪一区二区三区| 国产suv一区二区三区88区| 色婷婷久久久综合中文字幕| 欧美高清一级片在线| xfplay精品久久| 日韩久久一区二区| 日本不卡123| 成人av免费在线观看| 欧美丝袜自拍制服另类| 亚洲精品一区二区在线观看| 综合色天天鬼久久鬼色| 日韩精品亚洲一区| 懂色av一区二区三区蜜臀 | 91在线观看一区二区| 欧美久久高跟鞋激| 国产亚洲视频系列| 亚洲综合图片区| 国产乱码字幕精品高清av | 欧美蜜桃一区二区三区| 久久久三级国产网站| 亚洲一区在线观看视频| 国产中文字幕精品| 日本精品视频一区二区三区| 日韩欧美久久久| 亚洲欧美日韩国产中文在线| 久久精品国产77777蜜臀| 91美女在线观看| 精品国产在天天线2019| 亚洲精品视频一区二区| 国产在线精品一区二区不卡了 | 欧美午夜电影在线播放| 久久精品人人爽人人爽| 午夜精品国产更新| aaa欧美色吧激情视频| 欧美不卡一区二区三区四区| 一区二区三区影院|