User:Kernigh: Difference between revisions
Content added Content deleted
m (Add deal cards for FreeCell to list.) |
(Add SHA-1. Remove unused code.) |
||
Line 56: | Line 56: | ||
** [[Return multiple values]] |
** [[Return multiple values]] |
||
** [[Set]] |
** [[Set]] |
||
** [[SHA-1]] |
|||
** [[Subtractive generator]] |
** [[Subtractive generator]] |
||
== In progress == |
|||
<lang c>#include <stdio.h> |
|||
#include <stdlib.h> |
|||
#if defined(_WIN32) |
|||
#include <windows.h> |
|||
#include <process.h> |
|||
/* ARGSUSED */ |
|||
unsigned __stdcall |
|||
run2(void *arg) |
|||
{ |
|||
printf(" %d\n", rand()); |
|||
printf(" %d\n", rand()); |
|||
printf(" %d\n", rand()); |
|||
return 0; |
|||
} |
|||
void |
|||
run(void) |
|||
{ |
|||
HANDLE thread; |
|||
thread = (HANDLE)_beginthreadex(NULL, 0, run2, NULL, 0, NULL); |
|||
if (thread) { |
|||
WaitForSingleObject(thread, INFINITE); |
|||
CloseHandle(thread); |
|||
} else |
|||
puts("Error!"); |
|||
} |
|||
#elif defined(__unix__) |
|||
#include <pthread.h> |
|||
/* ARGSUSED */ |
|||
void * |
|||
run2(void *arg) |
|||
{ |
|||
printf(" %d\n", rand()); |
|||
printf(" %d\n", rand()); |
|||
printf(" %d\n", rand()); |
|||
return NULL; |
|||
} |
|||
void |
|||
run(void) |
|||
{ |
|||
pthread_t thread; |
|||
if (pthread_create(&thread, NULL, run2, NULL) || |
|||
pthread_join(thread, NULL)) |
|||
puts("Error!"); |
|||
} |
|||
#else |
|||
#error Port run() to your system. |
|||
#endif |
|||
int |
|||
main() |
|||
{ |
|||
srand(42); |
|||
puts("Thread A:"); |
|||
run(); |
|||
puts("Thread B:"); |
|||
run(); |
|||
return 0; |
|||
}</lang> |
|||
<pre>Thread A: |
|||
41 |
|||
18467 |
|||
6334 |
|||
Thread B: |
|||
41 |
|||
18467 |
|||
6334</pre> |