forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_thread-Выполнение процедуры в независимом потоке (http://forum.boolean.name/showthread.php?t=3541)

ViNT 05.06.2007 13:35

Lib_thread-Выполнение процедуры в независимом потоке
 
Вложений: 3
Lib_thread-библиотека позволяющая выполнять определенную в проекте процедуру в потоке, независимом от хода основной программы.
Описание и пример-в архиве.

Kurdt 05.06.2007 14:21

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
Да, идейка прикольная И еще одно, чтобы постоянно не добавлять клас среада в архив лутше его добавить как ресурс...
И еще одно... Я в яве не силен... Можно ли сделать массив среадов. Управлять им типа там threads[i]:=thread.init(параметр нужного среда);
thread.delete(threads[5])

Или сделать типа thread.init('my_procedure'); - может ли ява перевести строку в название процедуры ?
thread.start('my_procedure'); - а ява делает M.my_procedure();


Мда.. это вообще реально... скоро можно перенести в МП всю яву
Чтоб разработчики МП постарались еще до версии МП хоть 5.0 - то это был бы язык бомба.. а так все думают что кроме минера на нем ниче написать незя...

ViNT 05.06.2007 16:24

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
Про массив я уже думал, только с обработчиками проблема, по имени функции её помоему вызвать нельзя(хотя я тоже не знаток явы)

Kurdt 05.06.2007 17:00

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
Да, я спрашивал знатоков говорили незя... Но я вот немного переписал твою либу и сделал потдержку 10 среадов в одном проэкте, через 5 мин выложу
Стукни мне в асю 745708, если у тя есть. или маил ру [email protected]

ViNT 05.06.2007 17:03

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
Да можно сделать хоть 100, только всеравно не удобно.
Кстати с добавлением класса в ресурс-хорошая идея.

ViNT 05.06.2007 20:14

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
Вложений: 1
Kurdt, по-моему конструкция "!=" означает "НЕравно", надо писать "==" вместо "!=".
Я сделал с поддержкой 5 потоков и все работает.

Kurdt 05.06.2007 21:21

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
Вложений: 2
Сделал на 10 потоков :-P
Примерчик прилогаетцо.
Но все равно не реально... сделать бы чтоб автоматом все работало... Ато некрасиво както так... Мож Piligrim потскажет, ато мои знания явы ограничены 2 днями щелкания справки..

IVenoMI 08.06.2007 13:21

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
Библиотеки очень интересны, однако возник вопрос... В Яве по поводу потоков был пунктик, что то о одновременном использовании одной переменной двумя потоками... Это приводило к определенным трудностям в видк неожиданных ошибок и рассинхронизации данных... Как ваши либы работают с этим?..

Kurdt 08.06.2007 15:11

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
Цитата:

Сообщение от IVenoMI
Библиотеки очень интересны, однако возник вопрос... В Яве по поводу потоков был пунктик, что то о одновременном использовании одной переменной двумя потоками... Это приводило к определенным трудностям в видк неожиданных ошибок и рассинхронизации данных... Как ваши либы работают с этим?..

Уже много работал с библиотекой, никаких глюков небыло... Использовал одну глолбальную переменню в нескольких процессах одновременно, рисовал спрайты, выводил звук, все в отдельных потоках, работает нормально, че на теолефоне че и на эмуле... но полюбому если чегото не учесть то и можно сделать глюк, и не тока на МП но и на чистой яве. И все говорят например что МП глючный, а глючным его тока делают кривые руки... Сколько раз я материл МП за глючность и всегда оказывалось позже что это я ступил...

Kurdt 08.06.2007 15:11

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
Цитата:

Сообщение от IVenoMI
Библиотеки очень интересны, однако возник вопрос... В Яве по поводу потоков был пунктик, что то о одновременном использовании одной переменной двумя потоками... Это приводило к определенным трудностям в видк неожиданных ошибок и рассинхронизации данных... Как ваши либы работают с этим?..

Уже много работал с библиотекой, никаких глюков небыло... Использовал одну глолбальную переменню в нескольких процессах одновременно, рисовал спрайты, выводил звук, все в отдельных потоках, работает нормально, че на теолефоне че и на эмуле... но полюбому если чегото не учесть то и можно сделать глюк, и не тока на МП но и на чистой яве. И все говорят например что МП глючный, а глючным его тока делают кривые руки... Сколько раз я материл МП за глючность и всегда оказывалось позже что это я ступил...

Kurdt 08.06.2007 15:11

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
Цитата:

Сообщение от IVenoMI
Библиотеки очень интересны, однако возник вопрос... В Яве по поводу потоков был пунктик, что то о одновременном использовании одной переменной двумя потоками... Это приводило к определенным трудностям в видк неожиданных ошибок и рассинхронизации данных... Как ваши либы работают с этим?..

Уже много работал с библиотекой, никаких глюков небыло... Использовал одну глолбальную переменню в нескольких процессах одновременно, рисовал спрайты, выводил звук, все в отдельных потоках, работает нормально, че на теолефоне че и на эмуле... но полюбому если чегото не учесть то и можно сделать глюк, и не тока на МП но и на чистой яве. И все говорят например что МП глючный, а глючным его тока делают кривые руки... Сколько раз я материл МП за глючность и всегда оказывалось позже что это я ступил...

ViNT 08.06.2007 18:10

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
Ну насчет глючности MP-самая глючная прога, которую я видел. Когда эксперементировал с потоками, один и тот же код компилился через раз-каждый второй MP фатально завершался.

P.S. Юбилей - 50-е сообщение :) !

Piligrim 08.06.2007 18:19

Re: Lib_thread-Выполнение процедуры в независимом потоке
 
синхронизация нужна чаще для сложных переменных, типа вектора или массива. Если пользоваться простой целой или булевой, то ни чего не будет.
А насчет глючности МР, совместимость с 98-й в свойствах довольно хорошо его успокаивает

Serg153 13.01.2009 19:10

Ответ: Lib_thread-Выполнение процедуры в независимом потоке
 
Уважаемые.... подправьте плз, библиотеку - вернее добавьте ещё несколько - типа:
Lib_thread8.rar - 8 процессов
Lib_thread6.rar - 6 процессов
Lib_thread4.rar - 4 процесса
Lib_thread2.rar - 2 процесса
---
а то не очень удобно... мне нужно всего 2-3 потока для приложения - а вставлять приходится 10 штук... :=)

Phantom 13.01.2009 19:54

Ответ: Lib_thread-Выполнение процедуры в независимом потоке
 
А ведь можно в один класс засунуть несколько классов с потоками. То есть в одном файле сделать несколько классов. Или не прокатит?

ViNT 13.01.2009 22:06

Ответ: Lib_thread-Выполнение процедуры в независимом потоке
 
Цитата:

Сообщение от Serg153 (Сообщение 94641)
Уважаемые.... подправьте плз, библиотеку - вернее добавьте ещё несколько - типа:
Lib_thread8.rar - 8 процессов
Lib_thread6.rar - 6 процессов
Lib_thread4.rar - 4 процесса
Lib_thread2.rar - 2 процесса
---
а то не очень удобно... мне нужно всего 2-3 потока для приложения - а вставлять приходится 10 штук... :=)

Таак...
Писал очень давно, плохо помню, что к чему, а разбираться сейчас времени нет - сессия. Попробуйте не добавлять лишние классы, по-моему, если не инициализировать ненужные потоки, то классы для них можно не добавлять. Если не получится - на следующей неделе попробую склепать что-нибудь более универсальное.

Richik 12.05.2009 13:33

Ответ: Lib_thread-Выполнение процедуры в независимом потоке
 
Как это сказывается на работе мидлета в мобильном телефоне? Будет ли приложение подвисать, много ли памяти съест один или n-ое количество потоков?

Ну например если все мое приложение будет полностью написана в потоке или каждая ее процедура. Точнее если я буду использовать ‘этот способ вместо циклов)))

ViNT 12.05.2009 14:02

Ответ: Lib_thread-Выполнение процедуры в независимом потоке
 
Цитата:

Сообщение от Richik (Сообщение 104839)
Как это сказывается на работе мидлета в мобильном телефоне? Будет ли приложение подвисать, много ли памяти съест один или n-ое количество потоков?

Ну например если все мое приложение будет полностью написана в потоке или каждая ее процедура. Точнее если я буду использовать ‘этот способ вместо циклов)))

Таких проверок не проводил, естествнно, что каждый поток будет занимать память, но не думаю, что очень много. Если очень критично, можно отмониторить память на эмуляторе.

Richik 12.05.2009 15:02

Ответ: Lib_thread-Выполнение процедуры в независимом потоке
 
Ну в общем это реально сделать :)

cherepets 15.01.2010 13:22

Ответ: Lib_thread-Выполнение процедуры в независимом потоке
 
блин, оно же не работает! т.е. вообще не работает!
основной код в примере дублирует код процедуры с потоком, потому кажется что процедура из потока выполняется, а реально ни фига!

простите за кучу восклицательных знаков и недовольный тон...
просто 2 часа пихал поток в свою прогу и бестолку, а пример "работает", тупость!!!

ViNT 15.01.2010 14:31

Ответ: Lib_thread-Выполнение процедуры в независимом потоке
 
У меня сейчас примера под рукой нет, но попробуй просто остановить основную программу с помощью Delay. программа остановится, а поток продолжит выполняться. Это и значит, что "работает".

Можно также использовать Lib_threads от Piligrim'a, она точно работает.

cherepets 15.01.2010 17:02

Ответ: Lib_thread-Выполнение процедуры в независимом потоке
 
попробовал, программа не выполняется в таком случае.
да, вторая либа работает)))


Часовой пояс GMT +4, время: 01:20.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot