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

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

?? rwlock8.c

?? pthread source code,you can compile directly
?? C
字號:
/* * rwlock8.c * * Hammer on a bunch of rwlocks to test robustness and fairness. * Printed stats should be roughly even for each thread. * * Yield during each access to exercise lock contention code paths * more than rwlock7.c does (particularly on uni-processor systems). */#include "test.h"#include <sys/timeb.h>#ifdef __GNUC__#include <stdlib.h>#endif#define THREADS         5#define DATASIZE        7#define ITERATIONS      100000/* * Keep statistics for each thread. */typedef struct thread_tag {  int         thread_num;  pthread_t   thread_id;  int         updates;  int         reads;  int         changed;  int         seed;} thread_t;/* * Read-write lock and shared data */typedef struct data_tag {  pthread_rwlock_t    lock;  int                 data;  int                 updates;} data_t;static thread_t threads[THREADS];static data_t data[DATASIZE];/* * Thread start routine that uses read-write locks */void *thread_routine (void *arg){  thread_t *self = (thread_t*)arg;  int iteration;  int element = 0;  int seed = self->seed;  int interval = 1 + rand_r (&seed) % 71;  self->changed = 0;  for (iteration = 0; iteration < ITERATIONS; iteration++)    {      if (iteration % (ITERATIONS / 10) == 0)        {          putchar('.');          fflush(stdout);        }      /*       * Each "self->interval" iterations, perform an       * update operation (write lock instead of read       * lock).       */      if ((iteration % interval) == 0)        {          assert(pthread_rwlock_wrlock (&data[element].lock) == 0);          data[element].data = self->thread_num;          data[element].updates++;          self->updates++;	  interval = 1 + rand_r (&seed) % 71;	  sched_yield();          assert(pthread_rwlock_unlock (&data[element].lock) == 0);        } else {          /*           * Look at the current data element to see whether           * the current thread last updated it. Count the           * times, to report later.           */          assert(pthread_rwlock_rdlock (&data[element].lock) == 0);          self->reads++;          if (data[element].data != self->thread_num)            {              self->changed++;	      interval = 1 + self->changed % 71;            }	  sched_yield();          assert(pthread_rwlock_unlock (&data[element].lock) == 0);        }      element = (element + 1) % DATASIZE;    }  return NULL;}intmain (int argc, char *argv[]){  int count;  int data_count;  int thread_updates = 0;  int data_updates = 0;  int seed = 1;  struct _timeb currSysTime1;  struct _timeb currSysTime2;  /*   * Initialize the shared data.   */  for (data_count = 0; data_count < DATASIZE; data_count++)    {      data[data_count].data = 0;      data[data_count].updates = 0;      assert(pthread_rwlock_init (&data[data_count].lock, NULL) == 0);    }  _ftime(&currSysTime1);  /*   * Create THREADS threads to access shared data.   */  for (count = 0; count < THREADS; count++)    {      threads[count].thread_num = count;      threads[count].updates = 0;      threads[count].reads = 0;      threads[count].seed = 1 + rand_r (&seed) % 71;      assert(pthread_create (&threads[count].thread_id,                             NULL, thread_routine, (void*)&threads[count]) == 0);    }  /*   * Wait for all threads to complete, and collect   * statistics.   */  for (count = 0; count < THREADS; count++)    {      assert(pthread_join (threads[count].thread_id, NULL) == 0);    }  putchar('\n');  fflush(stdout);  for (count = 0; count < THREADS; count++)    {      if (threads[count].changed > 0)        {          printf ("Thread %d found changed elements %d times\n",                  count, threads[count].changed);        }    }  putchar('\n');  fflush(stdout);  for (count = 0; count < THREADS; count++)    {      thread_updates += threads[count].updates;      printf ("%02d: seed %d, updates %d, reads %d\n",              count, threads[count].seed,              threads[count].updates, threads[count].reads);    }  putchar('\n');  fflush(stdout);  /*   * Collect statistics for the data.   */  for (data_count = 0; data_count < DATASIZE; data_count++)    {      data_updates += data[data_count].updates;      printf ("data %02d: value %d, %d updates\n",              data_count, data[data_count].data, data[data_count].updates);      assert(pthread_rwlock_destroy (&data[data_count].lock) == 0);    }  printf ("%d thread updates, %d data updates\n",          thread_updates, data_updates);  _ftime(&currSysTime2);  printf( "\nstart: %ld/%d, stop: %ld/%d, duration:%ld\n",          currSysTime1.time,currSysTime1.millitm,          currSysTime2.time,currSysTime2.millitm,          (currSysTime2.time*1000+currSysTime2.millitm) -          (currSysTime1.time*1000+currSysTime1.millitm));  return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品视频在线观看免费| 国产精品免费看片| 亚洲一区二区三区影院| 在线精品视频一区二区三四| 亚洲一二三区不卡| 在线电影院国产精品| 蜜桃精品在线观看| 国产欧美va欧美不卡在线| av在线不卡网| 婷婷丁香激情综合| 久久久影视传媒| 99久久精品国产网站| 亚洲午夜三级在线| 欧美一级理论片| 国产宾馆实践打屁股91| 一区二区三区在线观看欧美| 欧美日韩一区三区| 紧缚奴在线一区二区三区| 欧美极品美女视频| 欧美色图一区二区三区| 精品亚洲成a人在线观看| 国产精品国产自产拍在线| 精品视频999| 国产精品一区二区在线播放 | 亚洲一区二区精品视频| 欧美一级二级三级乱码| 成人国产免费视频| 天天综合色天天| 亚洲国产精品成人综合| 欧美日韩一区二区三区四区| 国产1区2区3区精品美女| 亚洲成人av一区二区| 国产日韩一级二级三级| 精品婷婷伊人一区三区三| 国产九色精品成人porny| 亚洲综合成人在线视频| 国产欧美日韩精品一区| 日韩视频免费观看高清完整版在线观看 | 国产99久久久国产精品免费看| 亚洲日本va在线观看| 日韩精品一区二区三区四区视频| 91免费视频网| 国产一区高清在线| 午夜精品影院在线观看| 久久久亚洲欧洲日产国码αv| 欧美日韩精品是欧美日韩精品| 国产91精品露脸国语对白| 日本视频一区二区| 亚洲综合激情网| 亚洲欧美日韩一区二区三区在线观看| 精品国产99国产精品| 欧美日韩国产精品自在自线| 不卡一区在线观看| 国产一区二区三区免费观看| 蜜臀精品一区二区三区在线观看 | 成人小视频免费观看| 蜜桃久久久久久久| 亚洲电影一级黄| 亚洲精品videosex极品| 中文成人av在线| 欧美国产禁国产网站cc| 久久久久久毛片| 精品国内二区三区| 欧美电影免费观看高清完整版在线| 欧美中文字幕一二三区视频| 91丨九色丨蝌蚪丨老版| 丁香亚洲综合激情啪啪综合| 国产乱人伦偷精品视频不卡| 久久精品99国产国产精| 青椒成人免费视频| 天天av天天翘天天综合网色鬼国产| 亚洲综合自拍偷拍| 一区二区成人在线视频| 一区二区三区在线视频观看| 亚洲免费色视频| 一区二区三区精品| 亚洲小说欧美激情另类| 亚洲第一成年网| 日韩电影免费一区| 免费久久99精品国产| 美女视频网站黄色亚洲| 精品一区二区国语对白| 国产一区二区三区综合| 国产伦精一区二区三区| 国产成人精品一区二区三区网站观看| 国产精品主播直播| 99久久精品免费观看| 欧美在线免费播放| 欧美人与z0zoxxxx视频| 91精品国产综合久久福利软件 | 久久只精品国产| 国产肉丝袜一区二区| 综合欧美亚洲日本| 午夜精品一区二区三区三上悠亚| 另类中文字幕网| 国产91高潮流白浆在线麻豆 | 黄色小说综合网站| 国产精品1区二区.| 91免费国产视频网站| 欧美亚洲一区二区在线| 日韩一二三四区| 日本一区二区三区视频视频| 亚洲欧洲性图库| 日韩国产欧美视频| 国产精品888| 欧美亚州韩日在线看免费版国语版| 欧美精品一卡二卡| 久久精品视频免费观看| 一区二区在线观看免费| 日韩电影在线免费看| 国产精品一区在线| 欧美丝袜丝交足nylons| 精品少妇一区二区三区在线播放 | 在线亚洲精品福利网址导航| 91 com成人网| 国产精品美女视频| 天天综合网天天综合色| 国产**成人网毛片九色| 欧美日本在线播放| 日本一区免费视频| 欧美96一区二区免费视频| 国产成人三级在线观看| 精品污污网站免费看| 午夜视频一区二区| 国产制服丝袜一区| 欧美剧情片在线观看| 亚洲国产精品ⅴa在线观看| 天天色天天操综合| 色综合久久88色综合天天| 久久伊99综合婷婷久久伊| 夜夜精品浪潮av一区二区三区 | 99这里都是精品| 欧美不卡在线视频| 亚洲国产毛片aaaaa无费看| 国产福利不卡视频| 日韩欧美综合一区| 亚洲电影你懂得| 91丨porny丨户外露出| 久久久久久久久久久久电影| 日日夜夜精品视频免费| 91麻豆swag| 国产精品麻豆一区二区 | 久久电影网电视剧免费观看| 欧美系列一区二区| 国产精品欧美综合在线| 精品影视av免费| 777奇米四色成人影色区| 一区二区三区自拍| 成人激情电影免费在线观看| 欧美精品一区二区精品网| 日韩国产一区二| 欧美理论在线播放| 亚洲一区二区精品久久av| 97精品久久久久中文字幕| 亚洲国产精品传媒在线观看| 国产福利91精品一区二区三区| 精品国精品国产| 久久精品久久精品| 日韩视频在线你懂得| 日韩激情一二三区| 欧美放荡的少妇| 蜜乳av一区二区| 精品欧美一区二区久久 | 1024国产精品| 99国产欧美另类久久久精品| 国产精品久久久久婷婷| av激情亚洲男人天堂| 国产精品久久久久久久久免费樱桃| 国产不卡视频一区| 欧美国产97人人爽人人喊| 不卡的av电影| 亚洲三级电影全部在线观看高清| 97国产一区二区| 亚洲男女一区二区三区| 欧美亚洲丝袜传媒另类| 亚洲成人激情综合网| 欧美一区二区三区免费大片| 日韩电影在线一区| 精品成人一区二区| 福利一区福利二区| 亚洲精品水蜜桃| 欧美日韩在线直播| 日本成人在线网站| 久久久精品国产免大香伊| 成人网在线免费视频| 亚洲影院免费观看| 91精品国产综合久久久久久漫画 | 日韩一区二区三区四区五区六区| 秋霞电影网一区二区| 精品88久久久久88久久久| 国产高清亚洲一区| 综合久久久久久| 正在播放亚洲一区| 高清视频一区二区| 亚洲伊人色欲综合网| 欧美精品一区二区三区很污很色的 | 欧美一区二区三区男人的天堂| 狠狠色综合日日| 中文字幕亚洲电影| 欧美区视频在线观看|