|
|
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Barmaley57defecatorне ляжет, на серваке со 128 гигами оперативы создалось чуть больше пяти миллионов потоков (которые TThread), четыре процессора по 3.2 ГГц по четыре ядра на каждом плюс гипертрейд на каждом ядре. Суммарная нагрузка была в районе 55-65 процентов.Гы!!! Стек потоков уменьшал с дефолта что-ли? Главное, чтобы стека хватило. Ну и ресурсов на обслуживание всего этого дела ОСь должна отхавать нехило. Тормоза сильно ощущались после этого выкрутаса? мышка лагала сильно, а так внешне вроде несильно тормозила. Оракля там ещё запущена, я с другого компа к ней цеплялся, лаги при выполнении запросов были заметные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2016, 16:14 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Barmaley57Опять таки, очереди сообщений то хватит, чтобы заюзать класс wadman'a? кстати, про очереди в классе вадмана я что-то не подумал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2016, 16:16 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
defecatorBarmaley57Опять таки, очереди сообщений то хватит, чтобы заюзать класс wadman'a? кстати, про очереди в классе вадмана я что-то не подумал... Если очереди поломаются, то поменяй в wthread.inc режим на WTHREAD_LIBRARY. Тогда будет использоваться TQueue для общения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2016, 16:32 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Полноценная версия компоненты для батонометателей. Признаться, мне и самому так нравится больше. :) Теперь есть обертка над wthread, которая делает таски (TTask), которые тоже являются компонентами. Пользоваться стало чуть проще и удобнее. Пакет ставится в delphi и в lazarus для простоты. Под *nix пока не проверял. Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 17:06 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
И сами пакеты для delphi и lazarus. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 17:07 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
На Убунту (16) тоже работает с парой приведений типов. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2016, 21:05 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Протестировано в следующих комбинациях: Ubuntu 14, 16 (LTS), WinCE 5, Windows XP/7, Delphi XE2, Lazarus 1.6. Работает. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 10:39 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
wadman, может пора уже на гитхаб? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 15:36 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
серый-серый никможет пора уже на гитхаб? я давно ему об этом говорил. И неплохо бы с демками... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 18:40 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Доксерый-серый никможет пора уже на гитхаб? я давно ему об этом говорил. И неплохо бы с демками... А какая демка нужна? Вроде уже проще некуда: бросил компоненту, накидал таски (которые как сообщения для потока) и вперед. Без сарказма. Я думал, что теперь всё просто. Без ручного кода, всё в пределах основных принципов дельфи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2016, 20:58 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
wadmanбросил компоненту вот видишь, теперь уже компонента. А я в первый раз об этом слышу, хотя за этим топиком внимательно слежу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 18:05 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
wadmanБез ручного кода а я по старинке, ручками. Только пару функций из твоего модуля использую ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 18:06 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Докwadmanбросил компоненту вот видишь, теперь уже компонента. А я в первый раз об этом слышу, хотя за этим топиком внимательно слежу :) Это появилось ровно на этой странице. Выше описано. ДокwadmanБез ручного кода а я по старинке, ручками. Только пару функций из твоего модуля использую ... NewString/FreeString? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 19:33 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
wadman, в D7 не работает? у меня при установке [Error] wthread.pas(357): Undeclared identifier: 'FHandle' Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 19:45 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Ghost Writer, видимо нет, не тестировал. Завтра посмотрю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 19:49 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Почему такой большой? Зачем вы тащите все эти Classes... Немного творчества и, в качестве идеи: Код: pascal 1. 2. Все. Одна функция на все случаи жизни. AsyncCall напоминает, но там опять всякие Classes, SysUtils и т.п., а выше чисто Windows. Набросал эскиз: Код: pascal 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. Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2016, 06:35 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Кар-КарЗачем вы тащите все эти Classes... Один пишет "сделай компонет", другой "зачем classes". :) Далее обсудим, когда расскажешь, на каких платформах это работает и что это делает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2016, 09:07 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Допилил под Delphi 7. Демо-код такой-же, как и под ubuntu и wince. Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2016, 12:39 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
К моему удивлению, компонент установился и заработал в Lazarus на Ubuntu Mate 15.04 на миниПК с ARM процессором. Пришлось только добавить в файл lpr проекта перед uses строчку {$DEFINE UseCThreads}, иначе приложение с тестовым примером вылетало с ошибкой RunError(232). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2016, 15:43 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
gssboxПришлось только добавить в файл lpr проекта перед uses строчку {$DEFINE UseCThreads}, иначе приложение с тестовым примером вылетало с ошибкой RunError(232). В wthread.pas warning имеется, но на него видимо мало кто обращает внимание в окошке компиляции... Код: pascal 1. 2. 3. 4. 5. А вообще, об этом пишется почти в каждой теме про лазарус и многопоточность. "Подошел к писуару, расстегни ширинку". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2016, 15:47 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Вот кстати интересный момент когда раскомментил cthreads в файле wthread.pas: Код: pascal 1. 2. 3. 4. 5. то ошибка вылетала все равно, помогло только описанное выше изменение в файле WThreadTask.pas: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2016, 15:59 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
gssboxВот кстати интересный момент когда раскомментил cthreads в файле wthread.pas: Тут и не поможет. Модули cthreads и cmem должны быть самыми первыми модулями для проекта, а не для модуля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2016, 16:05 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
Ну так cthreads и был первым для проекта(см. выше), но заработало без ошибок только после добавления {$DEFINE UseCThreads} перед uses. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2016, 16:10 |
|
||
|
Шаблон класса для работы с потоком (WThread, Thread)
|
|||
|---|---|---|---|
|
#18+
gssboxНу так cthreads и был первым для проекта(см. выше), но заработало без ошибок только после добавления {$DEFINE UseCThreads} перед uses. "Был" не значит, что использовался. О чем спор? Что я не достаточно тонко намекаю на этот факт текстом сообщения? gssbox Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2016, 16:31 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39328028&tid=2039179]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 290ms |

| 0 / 0 |
