25.06.2011, 06:20
(
Последний раз редактировалось Fro1sha; 26.06.2011 в 06:48.
)
Описание:
Лог:
Примеры:
Скачать:
Многопоточность в Pawn. Так же есть возможность синхронизировать потоки (пример ObjectStreamer), что очень важно для разработки своих проектов с использование потоковВнимание:
Quote:
PAWN is not designed to be multi-threaded and there are no guarantees AT ALL on your data the moment you introduce threads. |
Неправильное использование плагина может привести к неработоспособности мода!Использование:
pawn Код:
#include <thread>
- 0.1.6
- Добавлена новая функция native CreateThreadEx( const pubname[ ] );
- 0.1.5
- Первый релиз.
pawn Код:
native CreateThread( const pubname[ ] ); // Создает поток по указанному public, вернет ид потока
native CreateThreadEx( const pubname[ ] );
native DestroyThread( threadid );
native SleepThread( milliseconds ); // Использовать в самом потоке (public)
native LockThread( threadid ); // Синхронизация потока, вернет ид замка
native UnLockThread( lockid );
С CreateThread
pawn Код:
new tickid;
public OnGameModeInit()
{
tickid = CreateThread( "MyFunction" );
}
public OnGameModeExit()
{
DestroyThread( tickid );
}
public MyFunction( threadid )
{
printf( "tick(%d)...", threadid );
SleepThread( 1000 );
}
С CreateThreadEx
pawn Код:
new bool:active;
new tickid;
public OnGameModeInit()
{
tickid = CreateThreadEx( "MyFunction" );
}
public OnGameModeExit()
{
active = false;
}
public MyFunction( threadid )
{
active = true;
while ( active )
{
printf( "tick(%d)...", threadid );
SleepThread( 1000 );
}
}