既製のシンプルなソリューションが見つからなかったため、車輪の再発明を始めました。
現時点では、ライブラリでは次のことができます。
- クラスの非同期メソッド呼び出しを整理する
- プログラムを終了する前にすべてのスレッドの実行を保証します
使用例:
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML class YourClass1 def hello p 'start' p 'list ' + Thread .list.join( ' ' ) p 'main ' + Thread .main.to_s p 'this ' + Thread .current.to_s p 'end' end end af = AsyncFu. new ( YourClass1 .new) af. hello
Copy Source | Copy HTML
- クラス YourClass2 <AsyncFu
- デフ こんにちは
- p 「開始」
- p 'list' + Thread .list.join( '' )
- p 'main' + スレッド .main.to_s
- p 'this' + Thread .current.to_s
- p 「終了」
- 終わり
- 終わり
- ai = YourClass2 .new
- 愛 こんにちは
ここでそれを感じることができます: GitHub
藤堂
- ステータスを追跡できるように、正常なコールバックを作成します。
- 例外処理とステータスリターンを行います。
- mixinスタイルを使用できるようにします。
PS第一人者の話を聞くのが面白い:)
UPD
上記の例は使用方法ではありません。これはスレッドチェックであり、古いテストの一部です。
実際、これを行うことができます:
Copy Source | Copy HTML
- 「rubygems」が 必要
- 「async_fu」が 必要
- クラス
- def grep (クエリ、パス)
- list = ` grep -rne '#{query}' #{path}`
- ファイル new ( '/tmp/grep.log' 、 'w' ).writeリスト
- 終わり
- def tick
- ループ {
- 寝る 1
- p 「チェック」
- }
- 終わり
- デフタック
- ループ {
- 寝る 2
- p 「タック」
- }
- 終わり
- 終わり
- テスト= AsyncFu。 new ( いくつかの .new)
- テスト。 ダニ
- テスト。 grep ( 'thread.rb' 、 '/ usr / local / lib' )
- テスト。 タック