2018年1月12日金曜日

開発環境

Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の12章(スレッド - 並列の世界)、コードマグネット(p. 509)を取り組んでみる。

コードマグネット(p. 509)

コード

#include <stdio.h>
#include <CoreWindow.h>

int beers = 2000000;

LPTHREAD_START_ROUTINE drink_lots(void *a)
{
 for (size_t i = 0; i < 100000; i++)
 {
  beers--;
 }
}
int main()
{
 HANDLE handls[20];

 for (size_t i = 0; i < 20; i++)
 {
  handls[i] = CreateThread(NULL, 0, drink_lots, NULL, NULL, NULL);
 }

 for (size_t i = 0; i < 20; i++)
 {
  WaitForSingleObject(handls[i], INFINITE);
 }
 printf("現在、壁にはビールが%i本あります。\n", beers);

 return 0;
}

入出力結果(コマンドプロンプト)


>beer.exe
現在、壁にはビールが674584本あります。

>beer.exe
現在、壁にはビールが697310本あります。

>beer.exe
現在、壁にはビールが795491本あります。

>beer.exe
現在、壁にはビールが832888本あります。

>beer.exe
現在、壁にはビールが936105本あります。

>

0 コメント:

コメントを投稿