|
|
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 16:57 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичЕсли бы там были локальные переменные, такого бы не произошло, осталось бы значение 0. Или я всё ещё продолжаю что-то не понимать. Походу да, ты продолжаешь не понимать, что у тебя локальные переменные - указатели на глобальный кусок памяти. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 17:09 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Андрей ИгоревичЕсли бы там были локальные переменные, такого бы не произошло, осталось бы значение 0. Или я всё ещё продолжаю что-то не понимать. Походу да, ты продолжаешь не понимать, что у тебя локальные переменные - указатели на глобальный кусок памяти. Ну дак я о том и пишу. Но вот что пишут на delphibasics http://www.delphibasics.ru/BeginThread.php // Указываем указатель на переданные данные // Обратите внимание, что каждый поток имеет отдельную копию msgPtr или товарищи форумчане YuRock Андрей Игоревич Но ^TMsgRecord указатель на тот же участок памяти, отдельных копий же нет? А я не вижу копий, я вижу копию указателя. Потому и спрашиваю. Zelius Андрей Игоревич, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Ну это понятно, но проще уж тогда просто переменную в ThreadVar сразу забить, кода меньше будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 17:48 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичНу дак я о том и пишу. delphibasics// Указываем указатель на переданные данные // Обратите внимание, что каждый поток имеет отдельную копию msgPtr (этого указателя - прим.ред) форумчане Именно отдельные копии (указателя - прим.ред) и будут для каждого потока при threadvar. Ну, вы все пишете одно и то же. Что именно тебя смущает-то?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 17:58 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
А в чем нужда велосипед изобретать? Давно есть высокоуровневые обертки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 18:00 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov delphibasics// Указываем указатель на переданные данные // Обратите внимание, что каждый поток имеет отдельную копию msgPtr (этого указателя - прим.ред) Ну дак во втором предложении суть, там указывают указатель (как коряво звучит), но получают отдельную копию. В указанном примере нет отдельной копии msgPtr, только "ссылка" на него в памяти. // Указываем указатель на переданные данные // Обратите внимание, что каждый поток имеет отдельную копию msgPtr Или фраза "отдельная копия указателя объекта" и "отдельная копия объекта" это одно и то же? Ладно, суть я уже банальным тестированием понял, обновлять главный поток будут через Showmessage. Жаль нет способа поудобнее, всё таки очень громоздко передавать сообщения, мне BeginThread как раз и заинтересовала тем, что намного компактнее, чем класс TThread, а так уже и не так компактно. white_nigger А в чем нужда велосипед изобретать? Давно есть высокоуровневые обертки... Ну я просто осваиваю функционал, читал чужой код, наткнулся, решил разобраться. Ни и показалось, что компактнее чем класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 18:08 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичВ указанном примере нет отдельной копии msgPtr, только "ссылка" на него в памяти. Бредить не надо. Нет там никакой ссылки. Оператор присваивания копирует значение указателя в локальную переменную. Всё. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 18:11 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Андрей ИгоревичВ указанном примере нет отдельной копии msgPtr, только "ссылка" на него в памяти. Бредить не надо. Нет там никакой ссылки. Оператор присваивания копирует значение указателя в локальную переменную. Всё. Это я про "физический смысл" указателя. "Ссылка" на ячейку в памяти. Ладно, это уже не важно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 18:26 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
Андрей ИгоревичЭто я про "физический смысл" указателя. "Ссылка" на ячейку в памяти. Почувствуйте разницу между операторами ":=" и "@". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 18:45 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
Андрей Игоревич white_nigger А в чем нужда велосипед изобретать? Давно есть высокоуровневые обертки... Ну я просто осваиваю функционал, читал чужой код, наткнулся, решил разобраться. Ни и показалось, что компактнее чем класс. Ничего там компактного нет! На первый взгляд так может показаться. А код автоматически становится сложнее, используется тип Pointer, который каждый интерпретирует по своему. Таким потоком сложнее управлять. В голову лезут безумные идеи написания кода, в том числе с использованием threadvar. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2020, 21:36 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
DmSer Андрей Игоревич пропущено... Ну я просто осваиваю функционал, читал чужой код, наткнулся, решил разобраться. Ни и показалось, что компактнее чем класс. Ничего там компактного нет! На первый взгляд так может показаться. А код автоматически становится сложнее, используется тип Pointer, который каждый интерпретирует по своему. Таким потоком сложнее управлять. В голову лезут безумные идеи написания кода, в том числе с использованием threadvar. По-умолчанию потоку под стек мегабайт выделяется обычно, хотя часто за глаза несколько десятков кб хватит. Для 32-бит программ это может быть чрезвычайно критично при запуске нескольких сотен потоков, уж про тысячу не говорю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2020, 00:32 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
DmSer Андрей Игоревич пропущено... Ну я просто осваиваю функционал, читал чужой код, наткнулся, решил разобраться. Ни и показалось, что компактнее чем класс. Ничего там компактного нет! На первый взгляд так может показаться. А код автоматически становится сложнее, используется тип Pointer, который каждый интерпретирует по своему. Таким потоком сложнее управлять. В голову лезут безумные идеи написания кода, в том числе с использованием threadvar. По-умолчанию потоку под стек мегабайт выделяется обычно, хотя часто за глаза несколько десятков кб хватит. Для 32-бит программ это может быть чрезвычайно критично при запуске нескольких сотен потоков, уж про тысячу не говорю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2020, 00:32 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
По-умолчанию потоку под стек мегабайт выделяется обычно, хотя часто за глаза несколько десятков кб хватит. Для 32-бит программ это может быть чрезвычайно критично при запуске нескольких сотен потоков, уж про тысячу не говорю 64-битная винда добавит ещё по 256 КБ на каждый поток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2020, 08:56 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
DmSer64-битная винда добавит ещё по 256 КБ на каждый поток. Она, к счастью, даст ещё и офигенного размера адресное пространство, которое позволит не заботиться о таких мелочах. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2020, 13:01 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov DmSer64-битная винда добавит ещё по 256 КБ на каждый поток. Она, к счастью, даст ещё и офигенного размера адресное пространство, которое позволит не заботиться о таких мелочах. К сожалению , если приложение 32-битное, для него сужается адресное пространство в 64-битной винде. Если приложение 64-битное, то про размер стека и адресное пространство можно не задумываться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2020, 14:10 |
|
||
|
CreateThread - проблемы выполнения
|
|||
|---|---|---|---|
|
#18+
DmSer Андрей Игоревич пропущено... Ну я просто осваиваю функционал, читал чужой код, наткнулся, решил разобраться. Ни и показалось, что компактнее чем класс. Ничего там компактного нет! На первый взгляд так может показаться. А код автоматически становится сложнее, используется тип Pointer, который каждый интерпретирует по своему. Таким потоком сложнее управлять. В голову лезут безумные идеи написания кода, в том числе с использованием threadvar. Жуть какая. Буду осторожнее. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2020, 16:26 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39985701&tid=2038101]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 220ms |
| total: | 369ms |

| 0 / 0 |
