68
68
69
69
</ head >
70
70
< body >
71
- < header data-kunai-mdinfo ="{"meta": {"header": ["mutex"], "namespace": ["std"], "id-type": ["class template"], "cpp": ["cpp11"]}, "sources": [{"id": "c17a48370b54fcb08a37155fd51b6da277635568", "source": "#include <iostream>\n#include <thread>\n#include <mutex>\n\n// std::cout\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u6392\u4ed6\u7684\u306b\u3059\u308b\nstd::mutex print_mtx_;\nvoid safe_print(int x)\n{\n std::lock_guard<std::mutex> lock{print_mtx_};\n std::cout << \"value:\" << x << std::endl;\n}\n\nint main()\n{\n std::thread t1([]{\n for (int i = 0; i < 5; i++) {\n safe_print(i);\n }\n });\n std::thread t2([]{\n for (int i = 0; i < 5; i++) {\n safe_print(5 + i);\n }\n });\n\n t1.join();\n t2.join();\n}\n"}], "page_id": ["reference", "mutex", "lock_guard"]} ">
71
+ < header data-kunai-mdinfo ="{"meta": {"header": ["mutex"], "namespace": ["std"], "id-type": ["class template"], "cpp": ["cpp11"]}, "sources": [{"id": "21a4811a86be4816d05503cd9cb32b2f75c82ba0", "source": "#include <iostream>\n#include <thread>\n#include <mutex>\n\n// std::cout\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3092\u6392\u4ed6\u7684\u306b\u3059\u308b\nstd::mutex print_mtx_;\nvoid safe_print(int x)\n{\n std::lock_guard<std::mutex> lock{print_mtx_};\n std::cout << \"value:\" << x << std::endl;\n}\n\n#include <random>\nvoid sleep_random()\n{\n std::random_device seed_gen;\n std::mt19937 engine{seed_gen()};\n std::uniform_int_distribution<int> dist{1, 10};\n\n int sleep_ms = dist(engine);\n std::this_thread::sleep_for(std::chrono::milliseconds{sleep_ms});\n}\n\nint main()\n{\n std::thread t1([]{\n for (int i = 0; i < 5; i++) {\n safe_print(i);\n sleep_random();\n }\n });\n std::thread t2([]{\n for (int i = 0; i < 5; i++) {\n safe_print(5 + i);\n sleep_random();\n }\n });\n\n t1.join();\n t2.join();\n}\n"}], "page_id": ["reference", "mutex", "lock_guard"]} ">
72
72
< nav class ="navbar navbar-default " role ="navigation ">
73
73
< div class ="container-fluid ">
74
74
< div class ="navbar-header ">
188
188
189
189
< p class ="text-right "> < small >
190
190
最終更新日時(UTC):
191
- < span itemprop ="datePublished " content ="2024-12-21T02:13:56 ">
192
- 2024年12月21日 02時13分56秒
191
+ < span itemprop ="datePublished " content ="2024-12-21T02:23:16 ">
192
+ 2024年12月21日 02時23分16秒
193
193
</ span >
194
194
< br />
195
195
< span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
@@ -270,7 +270,7 @@ <h2>メンバ型</h2>
270
270
</ table >
271
271
< h2 > 例</ h2 >
272
272
< h3 > 基本的な使い方</ h3 >
273
- < p > < div class ="yata " id ="c17a48370b54fcb08a37155fd51b6da277635568 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
273
+ < p > < div class ="yata " id ="21a4811a86be4816d05503cd9cb32b2f75c82ba0 "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
274
274
< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../thread.html "> <thread></ a > </ span > < span class ="cp "> </ span >
275
275
< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../mutex.html "> <mutex></ a > </ span > < span class ="cp "> </ span >
276
276
@@ -282,16 +282,29 @@ <h3>基本的な使い方</h3>
282
282
< span class ="n "> < a href ="../iostream/cout.html "> std::cout</ a > </ span > < span class ="o "> <<</ span > < span class ="s "> "value:"</ span > < span class ="o "> <<</ span > < span class ="n "> x</ span > < span class ="o "> <<</ span > < span class ="n "> < a href ="../ostream/endl.html "> std::endl</ a > </ span > < span class ="p "> ;</ span >
283
283
< span class ="p "> }</ span >
284
284
285
+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../random.html "> <random></ a > </ span > < span class ="cp "> </ span >
286
+ < span class ="kt "> void</ span > < span class ="nf "> sleep_random</ span > < span class ="p "> ()</ span >
287
+ < span class ="p "> {</ span >
288
+ < span class ="n "> < a href ="../random/random_device.html "> std::random_device</ a > </ span > < span class ="n "> seed_gen</ span > < span class ="p "> ;</ span >
289
+ < span class ="n "> < a href ="../random/mt19937.html "> std::mt19937</ a > </ span > < span class ="n "> engine</ span > < span class ="p "> {</ span > < span class ="n "> < a href ="../random/random_device/op_call.html "> seed_gen()</ a > </ span > < span class ="p "> };</ span >
290
+ < span class ="n "> < a href ="../random/uniform_int_distribution.html "> std::uniform_int_distribution</ a > </ span > < span class ="o "> <</ span > < span class ="kt "> int</ span > < span class ="o "> ></ span > < span class ="n "> dist</ span > < span class ="p "> {</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="mi "> 10</ span > < span class ="p "> };</ span >
291
+
292
+ < span class ="kt "> int</ span > < span class ="n "> sleep_ms</ span > < span class ="o "> =</ span > < span class ="n "> dist</ span > < span class ="p "> (</ span > < span class ="n "> engine</ span > < span class ="p "> );</ span >
293
+ < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> this_thread</ span > < span class ="o "> ::</ span > < span class ="n "> sleep_for</ span > < span class ="p "> (</ span > < span class ="n "> < a href ="../chrono/duration_aliases.html "> std::chrono::milliseconds</ a > </ span > < span class ="p "> {</ span > < span class ="n "> sleep_ms</ span > < span class ="p "> });</ span >
294
+ < span class ="p "> }</ span >
295
+
285
296
< span class ="kt "> int</ span > < span class ="nf "> main</ span > < span class ="p "> ()</ span >
286
297
< span class ="p "> {</ span >
287
298
< span class ="n "> < a href ="../thread/thread.html "> std::thread</ a > </ span > < span class ="n "> t1</ span > < span class ="p "> ([]{</ span >
288
299
< span class ="k "> for</ span > < span class ="p "> (</ span > < span class ="kt "> int</ span > < span class ="n "> i</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span > < span class ="p "> ;</ span > < span class ="n "> i</ span > < span class ="o "> <</ span > < span class ="mi "> 5</ span > < span class ="p "> ;</ span > < span class ="n "> i</ span > < span class ="o "> ++</ span > < span class ="p "> )</ span > < span class ="p "> {</ span >
289
300
< span class ="n "> safe_print</ span > < span class ="p "> (</ span > < span class ="n "> i</ span > < span class ="p "> );</ span >
301
+ < span class ="n "> sleep_random</ span > < span class ="p "> ();</ span >
290
302
< span class ="p "> }</ span >
291
303
< span class ="p "> });</ span >
292
304
< span class ="n "> < a href ="../thread/thread.html "> std::thread</ a > </ span > < span class ="n "> t2</ span > < span class ="p "> ([]{</ span >
293
305
< span class ="k "> for</ span > < span class ="p "> (</ span > < span class ="kt "> int</ span > < span class ="n "> i</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span > < span class ="p "> ;</ span > < span class ="n "> i</ span > < span class ="o "> <</ span > < span class ="mi "> 5</ span > < span class ="p "> ;</ span > < span class ="n "> i</ span > < span class ="o "> ++</ span > < span class ="p "> )</ span > < span class ="p "> {</ span >
294
306
< span class ="n "> safe_print</ span > < span class ="p "> (</ span > < span class ="mi "> 5</ span > < span class ="o "> +</ span > < span class ="n "> i</ span > < span class ="p "> );</ span >
307
+ < span class ="n "> sleep_random</ span > < span class ="p "> ();</ span >
295
308
< span class ="p "> }</ span >
296
309
< span class ="p "> });</ span >
297
310
0 commit comments