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

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

?? benchtest1.c

?? pthread source code,you can compile directly
?? C
字號:
/* * benchtest1.c * * * -------------------------------------------------------------------------- * *      Pthreads-win32 - POSIX Threads Library for Win32 *      Copyright(C) 1998 John E. Bossom *      Copyright(C) 1999,2005 Pthreads-win32 contributors *  *      Contact Email: rpj@callisto.canberra.edu.au *  *      The current list of contributors is contained *      in the file CONTRIBUTORS included with the source *      code distribution. The list can also be seen at the *      following World Wide Web location: *      http://sources.redhat.com/pthreads-win32/contributors.html *  *      This library is free software; you can redistribute it and/or *      modify it under the terms of the GNU Lesser General Public *      License as published by the Free Software Foundation; either *      version 2 of the License, or (at your option) any later version. *  *      This library is distributed in the hope that it will be useful, *      but WITHOUT ANY WARRANTY; without even the implied warranty of *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *      Lesser General Public License for more details. *  *      You should have received a copy of the GNU Lesser General Public *      License along with this library in the file COPYING.LIB; *      if not, write to the Free Software Foundation, Inc., *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * * -------------------------------------------------------------------------- * * Measure time taken to complete an elementary operation. * * - Mutex *   Single thread iteration over lock/unlock for each mutex type. */#include "test.h"#include <sys/timeb.h>#ifdef __GNUC__#include <stdlib.h>#endif#include "benchtest.h"#define PTW32_MUTEX_TYPES#define ITERATIONS      10000000Lpthread_mutex_t mx;pthread_mutexattr_t ma;struct _timeb currSysTimeStart;struct _timeb currSysTimeStop;long durationMilliSecs;long overHeadMilliSecs = 0;int one = 1;int zero = 0;#define GetDurationMilliSecs(_TStart, _TStop) ((_TStop.time*1000+_TStop.millitm) \                                               - (_TStart.time*1000+_TStart.millitm))/* * Dummy use of j, otherwise the loop may be removed by the optimiser * when doing the overhead timing with an empty loop. */#define TESTSTART \  { int i, j = 0, k = 0; _ftime(&currSysTimeStart); for (i = 0; i < ITERATIONS; i++) { j++;#define TESTSTOP \  }; _ftime(&currSysTimeStop); if (j + k == i) j++; }voidrunTest (char * testNameString, int mType){#ifdef PTW32_MUTEX_TYPES  assert(pthread_mutexattr_settype(&ma, mType) == 0);#endif  assert(pthread_mutex_init(&mx, &ma) == 0);  TESTSTART  assert(pthread_mutex_lock(&mx) == zero);  assert(pthread_mutex_unlock(&mx) == zero);  TESTSTOP  assert(pthread_mutex_destroy(&mx) == 0);  durationMilliSecs = GetDurationMilliSecs(currSysTimeStart, currSysTimeStop) - overHeadMilliSecs;  printf( "%-45s %15ld %15.3f\n",	    testNameString,          durationMilliSecs,          (float) durationMilliSecs * 1E3 / ITERATIONS);}intmain (int argc, char *argv[]){  int i = 0;  CRITICAL_SECTION cs;  old_mutex_t ox;  pthread_mutexattr_init(&ma);  printf( "=============================================================================\n");  printf( "\nLock plus unlock on an unlocked mutex.\n%ld iterations\n\n",          ITERATIONS);  printf( "%-45s %15s %15s\n",	    "Test",	    "Total(msec)",	    "average(usec)");  printf( "-----------------------------------------------------------------------------\n");  /*   * Time the loop overhead so we can subtract it from the actual test times.   */  TESTSTART  assert(1 == one);  assert(1 == one);  TESTSTOP  durationMilliSecs = GetDurationMilliSecs(currSysTimeStart, currSysTimeStop) - overHeadMilliSecs;  overHeadMilliSecs = durationMilliSecs;  TESTSTART  assert((dummy_call(&i), 1) == one);  assert((dummy_call(&i), 1) == one);  TESTSTOP  durationMilliSecs = GetDurationMilliSecs(currSysTimeStart, currSysTimeStop) - overHeadMilliSecs;  printf( "%-45s %15ld %15.3f\n",	    "Dummy call x 2",          durationMilliSecs,          (float) durationMilliSecs * 1E3 / ITERATIONS);  TESTSTART  assert((interlocked_inc_with_conditionals(&i), 1) == one);  assert((interlocked_dec_with_conditionals(&i), 1) == one);  TESTSTOP  durationMilliSecs = GetDurationMilliSecs(currSysTimeStart, currSysTimeStop) - overHeadMilliSecs;  printf( "%-45s %15ld %15.3f\n",	    "Dummy call -> Interlocked with cond x 2",          durationMilliSecs,          (float) durationMilliSecs * 1E3 / ITERATIONS);  TESTSTART  assert((InterlockedIncrement((LPLONG)&i), 1) == (LONG)one);  assert((InterlockedDecrement((LPLONG)&i), 1) == (LONG)one);  TESTSTOP  durationMilliSecs = GetDurationMilliSecs(currSysTimeStart, currSysTimeStop) - overHeadMilliSecs;  printf( "%-45s %15ld %15.3f\n",	    "InterlockedOp x 2",          durationMilliSecs,          (float) durationMilliSecs * 1E3 / ITERATIONS);  InitializeCriticalSection(&cs);  TESTSTART  assert((EnterCriticalSection(&cs), 1) == one);  assert((LeaveCriticalSection(&cs), 1) == one);  TESTSTOP  DeleteCriticalSection(&cs);  durationMilliSecs = GetDurationMilliSecs(currSysTimeStart, currSysTimeStop) - overHeadMilliSecs;  printf( "%-45s %15ld %15.3f\n",	    "Simple Critical Section",          durationMilliSecs,          (float) durationMilliSecs * 1E3 / ITERATIONS);  old_mutex_use = OLD_WIN32CS;  assert(old_mutex_init(&ox, NULL) == 0);  TESTSTART  assert(old_mutex_lock(&ox) == zero);  assert(old_mutex_unlock(&ox) == zero);  TESTSTOP  assert(old_mutex_destroy(&ox) == 0);  durationMilliSecs = GetDurationMilliSecs(currSysTimeStart, currSysTimeStop) - overHeadMilliSecs;  printf( "%-45s %15ld %15.3f\n",	    "Old PT Mutex using a Critical Section (WNT)",          durationMilliSecs,          (float) durationMilliSecs * 1E3 / ITERATIONS);  old_mutex_use = OLD_WIN32MUTEX;  assert(old_mutex_init(&ox, NULL) == 0);  TESTSTART  assert(old_mutex_lock(&ox) == zero);  assert(old_mutex_unlock(&ox) == zero);  TESTSTOP  assert(old_mutex_destroy(&ox) == 0);  durationMilliSecs = GetDurationMilliSecs(currSysTimeStart, currSysTimeStop) - overHeadMilliSecs;  printf( "%-45s %15ld %15.3f\n",	    "Old PT Mutex using a Win32 Mutex (W9x)",          durationMilliSecs,          (float) durationMilliSecs * 1E3 / ITERATIONS);  printf( ".............................................................................\n");  /*   * Now we can start the actual tests   */#ifdef PTW32_MUTEX_TYPES  runTest("PTHREAD_MUTEX_DEFAULT (W9x,WNT)", PTHREAD_MUTEX_DEFAULT);  runTest("PTHREAD_MUTEX_NORMAL (W9x,WNT)", PTHREAD_MUTEX_NORMAL);  runTest("PTHREAD_MUTEX_ERRORCHECK (W9x,WNT)", PTHREAD_MUTEX_ERRORCHECK);  runTest("PTHREAD_MUTEX_RECURSIVE (W9x,WNT)", PTHREAD_MUTEX_RECURSIVE);#else  runTest("Non-blocking lock", 0);#endif  printf( "=============================================================================\n");  /*   * End of tests.   */  pthread_mutexattr_destroy(&ma);  one = i; /* Dummy assignment to avoid 'variable unused' warning */  return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美电影在线| 国产白丝网站精品污在线入口| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美亚洲国产一区二区三区| 92精品国产成人观看免费| 99免费精品在线观看| 99免费精品在线观看| 91免费版pro下载短视频| 色拍拍在线精品视频8848| 色婷婷久久综合| 欧美精三区欧美精三区| 欧美一级淫片007| 久久综合九色综合欧美就去吻| 26uuuu精品一区二区| 国产欧美精品一区二区色综合 | 成人一级视频在线观看| 成人国产精品免费| 91国产丝袜在线播放| 欧美日韩一级视频| 精品国产一区二区三区忘忧草 | 国产精品婷婷午夜在线观看| 亚洲天堂a在线| 视频在线观看91| 狠狠色丁香久久婷婷综合_中 | 麻豆成人久久精品二区三区红 | 亚洲电影在线免费观看| 琪琪一区二区三区| 丁香激情综合国产| 欧美网站大全在线观看| 日韩欧美不卡在线观看视频| 国产精品另类一区| 五月天激情综合| 国产大陆a不卡| 欧美精品aⅴ在线视频| 久久精品亚洲精品国产欧美kt∨| 亚洲欧洲在线观看av| 秋霞午夜鲁丝一区二区老狼| 成人精品国产免费网站| 91.麻豆视频| 国产精品国产三级国产普通话蜜臀| 亚洲福利一区二区三区| 国产精品18久久久久| 欧美日韩三级在线| 国产精品久久久久久久久免费桃花 | 高清视频一区二区| 欧美日韩国产欧美日美国产精品| 亚洲国产电影在线观看| 人禽交欧美网站| 欧美亚洲国产一区二区三区va| 26uuu久久综合| 日本中文一区二区三区| 色婷婷久久久综合中文字幕| 日本一区二区在线不卡| 久久精品国产亚洲一区二区三区| 色哟哟国产精品| 中文字幕av一区二区三区| 麻豆国产精品官网| 91精品国产手机| 亚洲一区二区三区国产| 99精品久久免费看蜜臀剧情介绍| 欧美精品一区二区在线观看| 日韩不卡一区二区| 欧美日韩在线免费视频| 亚洲三级电影网站| 99综合影院在线| 国产精品久久毛片av大全日韩| 国产在线精品不卡| 欧美精品免费视频| 日韩电影免费一区| 91精品国产黑色紧身裤美女| 午夜免费久久看| 欧美男女性生活在线直播观看| 亚洲品质自拍视频网站| 91老司机福利 在线| 亚洲日本一区二区| 色综合天天性综合| 亚洲精选视频免费看| 欧洲av在线精品| 亚洲一区电影777| 欧美色欧美亚洲另类二区| 一区二区三区不卡视频在线观看| 91福利在线导航| 亚洲高清免费一级二级三级| 欧美精品自拍偷拍动漫精品| 日本视频在线一区| 精品成人佐山爱一区二区| 国产精品一二三四区| 国产精品狼人久久影院观看方式| 97国产一区二区| 视频一区国产视频| 久久久久九九视频| jlzzjlzz欧美大全| 亚洲福利电影网| 久久女同精品一区二区| 成人av网站在线观看| 一区二区欧美精品| 欧美一区二区三级| 国产在线播放一区| 亚洲人妖av一区二区| 欧美日韩在线不卡| 国产福利不卡视频| 亚洲香蕉伊在人在线观| 久久婷婷国产综合精品青草| 91视频免费播放| 久久国内精品视频| 自拍偷自拍亚洲精品播放| 538在线一区二区精品国产| 国产在线视频精品一区| 亚洲一级电影视频| 欧美精品一区二区三区蜜桃| 91豆麻精品91久久久久久| 韩日av一区二区| 亚洲影院久久精品| 国产午夜亚洲精品羞羞网站| 欧美午夜精品一区二区蜜桃| 国产一区二区三区美女| 亚洲国产精品视频| 中文字幕av资源一区| 日韩欧美亚洲一区二区| 91女神在线视频| 狠狠色丁香久久婷婷综| 天堂一区二区在线免费观看| 中文字幕在线不卡一区 | 色综合久久88色综合天天6| 奇米影视一区二区三区小说| 一区二区在线看| 日韩一级欧美一级| 亚洲欧美激情一区二区| 欧美乱妇15p| 国产精品亚洲成人| 丝袜亚洲另类欧美| 18成人在线视频| 国产日产欧产精品推荐色| 欧美一区日本一区韩国一区| 色综合久久88色综合天天6| 国产成人欧美日韩在线电影| 麻豆国产精品777777在线| 天天爽夜夜爽夜夜爽精品视频 | 国产一区二区伦理| 亚洲大片精品永久免费| 亚洲免费av高清| 1024成人网| 最新高清无码专区| 国产精品国产馆在线真实露脸| 国产亚洲精品超碰| 国产婷婷一区二区| 成人aaaa免费全部观看| 蜜桃久久久久久| 毛片一区二区三区| 日韩专区一卡二卡| 无码av免费一区二区三区试看| 久久99精品久久久久久动态图 | av资源网一区| 国产精品1区2区3区在线观看| 国内精品自线一区二区三区视频| 美女视频黄免费的久久 | 中文字幕欧美日本乱码一线二线| 精品国内二区三区| 久久精品人人做人人爽人人| 国产午夜精品一区二区三区视频 | 麻豆国产精品一区二区三区| 久久电影国产免费久久电影| 九九精品一区二区| 高清免费成人av| 色哟哟一区二区在线观看| 欧美色图在线观看| 欧美一级一区二区| 国产日韩欧美一区二区三区综合| 国产精品理论片| 亚洲成人综合网站| 精品在线观看视频| 不卡一区二区中文字幕| 欧美在线视频日韩| 日韩美女在线视频| 国产精品美日韩| 亚洲动漫第一页| 国产精品影视天天线| 在线视频一区二区免费| 精品sm捆绑视频| 中文字幕亚洲区| 免费不卡在线观看| 成人免费视频国产在线观看| 国产精品色在线| 亚洲黄色性网站| 卡一卡二国产精品| 在线亚洲免费视频| 国产日韩欧美精品综合| 亚洲精品免费在线观看| 另类成人小视频在线| 色综合天天综合网天天狠天天| 在线综合亚洲欧美在线视频| 国产精品乱子久久久久| 日本成人中文字幕在线视频 | 色av成人天堂桃色av| 精品久久人人做人人爰| 亚洲国产精品视频| 高清在线不卡av| 精品国产伦一区二区三区免费| 亚洲自拍偷拍网站| 99久久综合狠狠综合久久|