|
|
|
Не пойму как работает код. Несколько потоков, семафор.
|
|||
|---|---|---|---|
|
#18+
Всем привет. Разбираюсь с примером на семафоры и не пойму как работает код: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. Выводится в консоль за раз только один из потоков. Почему не оба? А иногда программа подвисает. Запускаю в intellij idea И ещё, что значат термины - Deadlocks and Starvation, они относятся к этому примеру. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 10:07 |
|
||
|
Не пойму как работает код. Несколько потоков, семафор.
|
|||
|---|---|---|---|
|
#18+
mr_virtusВсем привет. Разбираюсь с примером на семафоры и не пойму как работает код: Выводится в консоль за раз только один из потоков. Почему не оба? А иногда программа подвисает. Запускаю в intellij idea И ещё, что значат термины - Deadlocks and Starvation, они относятся к этому примеру. Спасибо. Если 2 потока идут по разным веткам: Worker0 : x=0, Worker1: x=1 вот тут и DeadLock Worker0 : sem0.P(); v=0; Worker1 : sem1.P(); v=0; Worker0 : sem1.P(); цикл Worker1 : sem0.P(); цикл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2014, 10:55 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=179&tid=2127373]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 425ms |

| 0 / 0 |
