Abstracts native system thread execution
OperationsCode example:
class Test {
function : Main(args : String[]) ~ Nil {
x := Counter->New("x,128");
y := Counter->New("y,32");
x->Execute(Nil);
y->Execute(Nil);
x->Join();
y->Join();
}
}
class Counter from System.Concurrency.Thread {
@name : String;
@max : Int;
New(tag : String) {
Parent();
parts := tag->Split(',');
@name := parts[0]->Trim();
@max := parts[1]->Trim()->ToInt();
}
method : public : Run(param:System.Base) ~ Nil {
count := 0;
while(count++ < @max) {
"{$@name}: {$count}"->PrintLine();
};
}
}
Name of the thread
New(name:String)
Name | Type | Description |
---|---|---|
name | String | name of the thread |
Called to execute a new thread
method : public : Execute(param:System.Base) ~ Nil
Name | Type | Description |
---|---|---|
param | Base | parameter to be passed into the newly executing thread |
Returns a unique execution ID
method : public : GetExecuteID() ~ Int
Returns the thread's name
method : public : GetName() ~ String
Joins the executing thread with the caller
method : public : Join() ~ Nil
Prototype for the thread to be executed
method : public : virutal : Run(param:System.Base) ~ Nil
Name | Type | Description |
---|---|---|
param | Base | parameter to be passed into the thread |
Sleeps the executing thread
function : Sleep(t:Int) ~ Nil
Name | Type | Description |
---|---|---|
t | Int | sleep time in milliseconds |