Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #include <Windows.h>
  2. #include <stdio.h>
  3. #include <conio.h>
  4.  
  5.  
  6. long zmienna =1;
  7. static CRITICAL_SECTION cs;
  8.  
  9. void watek(int* liczba_wejsc)
  10. {
  11. while(true){
  12. EnterCriticalSection(&cs);
  13. EnterCriticalSection(&cs); //dziala z tym
  14. zmienna+=100;
  15. zmienna*=200;
  16. zmienna/=200;
  17. zmienna-=100;
  18. (*liczba_wejsc)++;
  19. LeaveCriticalSection(&cs);
  20. }
  21. }
  22.  
  23. void watek2(int* liczba_wejsc)
  24. {
  25. while(true){
  26. while(!TryEnterCriticalSection(&cs)) //pobuje wejsc do sekcji - duzo wolniejsze !
  27. {
  28. Sleep(20);
  29. }
  30. zmienna+=100;
  31. zmienna*=200;
  32. zmienna/=200;
  33. zmienna-=100;
  34. (*liczba_wejsc)++;
  35. LeaveCriticalSection(&cs);
  36. }
  37. }
  38.  
  39. int main()
  40. {
  41.  
  42. int liczba_wejsc=0;
  43. InitializeCriticalSection(&cs);
  44. //CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)watek,&liczba_wejsc,NULL,NULL);
  45. //CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)watek,&liczba_wejsc,NULL,NULL);
  46.  
  47. CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)watek2,&liczba_wejsc,NULL,NULL);
  48. CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)watek2,&liczba_wejsc,NULL,NULL);
  49.  
  50.  
  51. while(true)
  52. {
  53. if(_kbhit()) break;
  54. printf("zmienna:%lu\tl.w:%lu\n",zmienna,liczba_wejsc);
  55. Sleep(200);
  56. }
  57.  
  58. DeleteCriticalSection(&cs);
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement