|
|
|
Годится ли тест для определения существования Spurious wakeups?
|
|||
|---|---|---|---|
|
#18+
вопрос возник по результатам прочтения этой статейки: http://www.javenue.info/post/91 приведу код оттуда: Код: 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. 81. 82. 83. 84. 85. 86. 87. как аффтар и обещает, выводится число 0. Но, если убрать Код: java 1. 2. из кода метода run класса Notifier, то я почти всегда в выводе вижу отрицательные числа(зачастую они даже в цифру не укладываются - рекорд "-472") Я не очень понимаю почему если этот блока есть, то всегда всё нормально( 0 выводится) Ведь у нас такая ситуация - все 600 потоков воркеров уснули. запускается нотифаер.....входит в sync секцию->будет всех воркеров и они все желают ворваться в sync секцию -> continueCondition = false; -> затем нотифаер покидает sync секцию -> теперь 2 потока 1- Код: java 1. 2. 3. 4. 5. 6. 7. 2- Код: java 1. 2. 3. 4. 5. 6. 7. собственно мы не знаем что раньше произойдёт(я так считаю) doStuff(); может выполниться или не выполниться же. Соответственно я не понимаю почему в случае наличия этого блока результаты всегда такие одинаковые. Что я забыл учесть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2014, 19:26 |
|
||
|
Годится ли тест для определения существования Spurious wakeups?
|
|||
|---|---|---|---|
|
#18+
будит* ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2014, 19:27 |
|
||
|
Годится ли тест для определения существования Spurious wakeups?
|
|||
|---|---|---|---|
|
#18+
я кажется поняллогику этого человека, но всё равно это ж не 100 процентов. Как бы так тут элегантно сделать, чтобы после того как как каждый воркер закончит работу следующим секцию занимал именно нотифаер ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2014, 19:52 |
|
||
|
Годится ли тест для определения существования Spurious wakeups?
|
|||
|---|---|---|---|
|
#18+
questioner, Раз все молчат, сам себе отвечу. Подобной функциональности можно добиться использованием Condition http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/Condition.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 11:35 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=177&tid=2127268]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 263ms |
| total: | 428ms |

| 0 / 0 |
