問題タブ [callable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1447 参照

java - イベント駆動型の未来- スレッドプール

callable<V>およびを使用しFuture<V>て、スレッド プールから終了したスレッドの結果を受け取ります。get()返された結果を受け取るために呼び出す必要があります。私の問題は次のとおりです。イベント駆動型ではありません。SIGCHLDC の子プロセスのように結果を取得するフレームワークはありますか? 私はこのようなものが欲しい:(プール内の各スレッドがジョブを終了すると、スレッドプールはこの関数を呼び出します)

0 投票する
2 に答える
850 参照

java - パラメータを使用するアンドロイド関数を渡す

を使用してきましたがCallable、メソッドでパラメーターを使用する関数が必要になりましたcall。これはの機能ではないことがcallわかりました。どうすればこれを行うことができますか?

私が現在持っているもの(間違っている):

MyAsyncTask:

0 投票する
1 に答える
618 参照

php - Symfony 2.0 で無名関数が NULL に評価されるのはなぜですか?

Symfony 2.0 をいじり始めたところ、すぐにエラーが発生しました。

[2011 年 11 月 28 日 16:51:26] PHP の致命的なエラー: メッセージ「AnnotationRegistry::registerLoader() で callable が必要です」というメッセージを含むキャッチされない例外「InvalidArgumentException」

さらに深く掘り下げると、無名関数が関数に渡されていることがわかりましたregisterLoader

いいですね。安全のために、小切手を入れました:

これは NULL を返しましたが、これは明らかに呼び出し可能ではありません。私はPHP 5.3.2にアップグレードしたばかりで、それによると、phpversion()使用されているバージョンです。

Symfony 環境の外で 1 回限りのスクリプトを実行したところ、すべてが正しく動作しました。

//string(6) "オブジェクト"

Symfony 環境内の無名関数に関して異なる動作が見られる理由について、何か考えがある人はいますか?

0 投票する
5 に答える
8562 参照

python - Pythonのcallableまたはlambdaからリストまたはタプルを入力します

これは私が最近よく遭遇する問題です。グーグルは答えを持っていないようですので、私はそれをスタックオーバーフローの良い人々に持ってきます。

関数の出力をリストに入力する簡単な方法を探しています。このようなもの:

これを行うために私が見つけた他の方法があります。しかし、彼らは非効率に見えるので、私は彼らに本当に満足していません。

提案?


すべての答えをありがとう。もっとPython風の方法があることは知っていました。

そして効率の質問に...

0 投票する
2 に答える
214 参照

python - Pythonでの呼び出し可能オブジェクトを使用したポリモーフィズム

iResourceというインターフェイスクラスと、それぞれが「request」メソッドを実装するいくつかのサブクラスがあります。リクエスト関数は他のマシンへのソケットI/Oを使用するため、それらを非同期で実行することは理にかなっています。これにより、他のマシンが並行して動作できるようになります。

問題は、iResource.requestを使用してスレッドを開始し、最初の引数としてサブクラスを指定すると、スーパークラスメソッドが呼び出されることです。最初の引数として「type(a).request」と「a」で開始しようとすると、type(a)の値として「」が返されます。それが何を意味するのか、そしてメソッドの真のタイプを取得する方法について何かアイデアはありますか?どういうわけかPythonで抽象メソッドを正式に宣言できますか?

編集:コードを含みます。

「executeChainResults」は、callableのリスト「tasks」とargs-tuplesのリスト「argss」を取り、それぞれがリストを返すことを前提としています。次に、それぞれを別々のスレッドで実行し、結果のリストを連結します。必要に応じてそのコードを投稿できますが、問題はないので、とりあえず省略します。

オブジェクト「a」は、例外をスローする単一のコンストラクターを持っているため、iResourceタイプではありません。ただし、「type(a).request」を「iResource.request」に置き換えると、基本クラスのメソッドが呼び出されます。さらに、 "self.types ["social "] [0] .request"を呼び出すことは直接正常に機能しますが、上記のコードは次のようになります。 "typeobject'instance'には属性'request'"がありません。

コメントされた行のコメントを解除すると、<type 'instance'>数回印刷されます。

0 投票する
2 に答える
4700 参照

java - マルチスレッド REST API クライアントの設計

私は、トピックの検索リクエストを受け取り、New York Times API への API 呼び出しを行ってトピックに関連する記事を取得し、次に Twitter API への API 呼び出しを行って記事に言及しているツイートを取得し、最終的に結果を処理して返すプログラムに取り組んでいます。それを戻します。

これをマルチスレッド化する必要があります。固定サイズのスレッド プールで ExecutorService を使用することを考えました。そのため、すべての受信検索リクエストは個別のスレッドによって処理されます。また、Callable インターフェイスを使用してタスクを送信します。Callable を実装するクラスは、API 処理 (API 要求/応答の作成と受信) を行います。最後に、結果が Future によってフェッチされ、出力として表示されます。これは、着信リクエストごとに発生します。

これは理にかなっていますか?または、これを行うより良い方法はありますか?

編集:コマンドラインインターフェイスからデータを受け入れるローカルマシンでこれを実行しています。

0 投票する
1 に答える
38118 参照

java - Callable.call()からスローされた例外をキャッチする場所

重複の可能性:
JavaExecutorServiceタスクからの例外の処理

ExecutorServiceスレッドの調整にはfromJavaを使用します。私が使用するスレッドを開始するために

結果を収集するために、future.get()スレッドごとに使用します。「スレッド」は、を実装Callableおよびオーバーライドするクラスのオブジェクトのリストですcall()

今、私は次の問題を抱えています。このメソッドcall()は、さまざまな特定の例外をスローします。invokeAll()future.get()だけ投げInterruptedExceptionます。

スローした特定の例外をどこでキャッチできcall()ますか?それとも私はそこでそれらを処理する必要がありますか?これらの例外の1つがスローされた場合、結果はInterruptedException

0 投票する
2 に答える
1641 参照

java - Java: Callables を使用した ExecutorService: ループで同じプールを再利用しますか? シャットダウンが必要ですか?

{Loop-1}スレッドを開始する loop を取得しました。{Loop-1}実装された Daemon と Runnableを含むクラス。開始され{Loop-1}たスレッドでは、ExecutorService を使用するcoordinate()クラスのメソッドを呼び出します。Coordinate.java

のオブジェクトCoordinate.javaが作成されると (これは BEFORE で 1 回発生し{Loop-1}ます)、ExecutorService をインスタンス化します。 pool = Executors.newFixedThreadPool(2);

Callable を実装するクラスの 2 つのオブジェクトを作成し、coordinate()それらを開始して、結果を Future の結果のリストに格納します。 callableResults = pool.invokeAll(threads);

その後、ループで結果を取得しようとしますresult = future.get();

その後、 に戻り、{Loop-1}プロセス全体が再び開始されます (call coordinate()invokeAll()future.get()

ここで、次の質問があります: 1. で結果を取得した後、ExecutorService のプールをシャットダウンする必要がありますcoordinate()か? 2.{Loop-1}呼び出しのたびにプールを再作成する必要がありますcoordinate()か?

答えてくれてありがとう!:-)

0 投票する
2 に答える
5631 参照

java - Java: Callables を使用した ExecutorService: invokeAll() および future.get() - 結果は正しい順序になりますか?

Java で ExecutorService を使用して Threads を呼び出しinvokeAll()ます。その後、 で結果セットを取得しfuture.get()ます。スレッドを作成したのと同じ順序で結果を受け取ることが非常に重要です。

ここにスニペットがあります:

新しい CallObjects を作成して ArrayList に追加したのと同じ順序で future.get() からの結果を受け取ることは保証されていますか? ドキュメンテーションには次のように書か invokeAll(): returns a list of Futures representing the tasks, in the same sequential order as produced by the iterator for the given task list. If the operation did not time out, each task will have completed. If it did time out, some of these tasks will not have completed.れています。

答えてくれてありがとう!:-)