new TCThreadVirtual(name, func, onErroropt)
One‑shot task executed on a JDK 21+ virtual thread. Shares cooperative semantics
with TCThread and adds a non‑blocking TCThreadVirtual#await.
Example
// Example: basic virtual thread
var v = new TCThreadVirtual("v", () => delay(80));
v.start();
print(v.await(500));
Parameters:
| Name | Type | Attributes | Description |
|---|---|---|---|
name |
string | Logical name used in registries. |
|
func |
function | User function to execute when the thread starts. |
|
onError |
function |
<optional> |
Optional non‑fatal error handler. |
Methods
await(timeout) → {boolean}
Non‑blocking wait with timeout.
Example
// Example: await with timeout
var v = new TCThreadVirtual("vWait", () => {
delay(120));
v.start();
print(v.await(500)
});
Parameters:
| Name | Type | Description |
|---|---|---|
timeout |
number |
Returns:
- Type
- boolean
getFunctionName() → {string}
Name.
Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.getFunctionName());
Returns:
- Type
- string
getJavaThread() → {java.lang.Thread|null}
Underlying Java thread.
Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
var jt=v.getJavaThread();
Returns:
- Type
- Thread | null
isAlive() → {boolean}
Liveness (includes short start window).
Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.isAlive());
Returns:
- Type
- boolean
isPaused() → {boolean}
Whether paused.
Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.isPaused());
Returns:
- Type
- boolean
isRunning() → {boolean}
Whether still running.
Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.isRunning());
Returns:
- Type
- boolean
isVirtual() → {true}
Distinguish type.
Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.isVirtual()); // true
Returns:
- Type
- true
join()
Warning: may block engine; prefer await().
Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
v.join();
pause()
Pause cooperatively.
Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
v.pause();
resume()
Resume after pause.
Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
v.resume();
start()
Start once; additional calls are ignored.
Example
// Example: start twice (second call ignored)
var v = new TCThreadVirtual("v", () => delay(10));
v.start();
stop()
Best‑effort stop.
Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
delay(50);
v.stop();
wasInterrupted() → {boolean}
Whether interrupt observed.
Example
var v=new TCThreadVirtual("v",()=>delay(1000));
v.start();
print(v.wasInterrupted());
Returns:
- Type
- boolean