Bundle System support for threads and runtime concurrency
Thread
Abstracts native system thread execution
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();
};
}
}Operations
Execute #
Called to execute a new thread
method : public : Execute(param:System.Base) ~ NilParameters
| Name | Type | Description |
|---|---|---|
| param | Base | parameter to be passed into the newly executing thread |
GetExecuteID #
Returns a unique execution ID
method : public : GetExecuteID() ~ IntReturn
| Type | Description |
|---|---|
| Int | execution ID |
GetName #
Returns the thread's name
method : public : GetName() ~ StringReturn
| Type | Description |
|---|---|
| String | thread's name |
New # constructor
Name of the thread
New(name:String)Parameters
| Name | Type | Description |
|---|---|---|
| name | String | name of the thread |