スレッド

Version 0.67より、関数に同期、非同期の区別ができました。
同期関数は従来から存在する普通の(?)関数です。関数呼び出しはブロックされます。
(呼び出した関数で期待される処理が全て完了するまで、関数呼び出しから戻らない)

対して非同期関数は、関数呼出し後即座に戻ります。(ブロックされません)
非同期関数は文字通り非同期に動作し、イベントも非同期に実行されます。
(非同期動作の仕組みは、OSのスレッド機構を利用しています)

本来全ての関数で非同期/同期の切り替えが行えますが、現在は多少テストケースの意味もあるため、
一部組み込み関数のみ非同期実行の仕組みを組み込んでいます。

非同期関数は、同期関数名の先頭にasync_を付けた名称になっており、
現在はloop()、DB_Open()、HTTP_ReadHTML()、DIR_Find()の4種が存在します。
(それぞれ、async_loop(), async_DB_Open()、async_HTTP_ReadHTML()、async_DIR_Find())

※スクリプトの実行を並列に動作させるためには、同期/非同期に関わらず繰り返し処理の合間に、
sleep()関数の呼び出しが必要です。(async/内のサンプルも参照ください)
スクリプト終了時、全ての非同期関数の実行が完了するのを待ちます。



同期関数と非同期関数処理の流れ
非同期関数