c/cocoaのブロックがメインスレッドとは別のスレッドで実行されているかどうかを知りたい。彼らはUIを応答したままにして、計算コストの高いコードを実行するのに有益でしょうか?ブロックとスレッド
答えて
ブロックは、呼び出し可能なオブジェクトにまとめられたコードのスニペットです。彼らがどのように動作するかは、それを呼び出すコードによって決まります。
別のスレッド上のブロックを実行することは可能であるだけでなく、ブロックの概念が導入された理由です。 Grand Central Dispatchをサポートするために存在します。これは、タスク指向モデルの背後にある複雑な並行プログラミングの多くを隠しています。
非常に簡潔な答えです。私はブロックがクロージャのC実装であると付け加えることは価値があると思います。 http://en.wikipedia.org/wiki/Closure_(computer_science) –
最初に来たのは?ブロックまたはGCD? :)実際にブロックはGCDに対して直角に作られましたが、ピーナッツバターやチョコレートのように、彼らはどのようにうまく一緒に働いたかが素早く明らかになりました。 – bbum
他のスレッドで実行する必要はありませんが、実行することはできます。それらをNSOperationQueuesまたはGCDキューでスケジューリングすることができます。これらのキューはバックグラウンドスレッドによって排除できます。
はい、これは、メインスレッドから時間のかかる作業を手助けするのに役立つ構成です。しかし、これはブロックが有用であるとは限らず、逆にブロックの有無にかかわらずバックグラウンド処理を行うことができます。
- 1. スレッドをブロックするスレッド
- 2. wxPythonスレッドのブロック
- 3. Javaスレッド:synchronizedブロック
- 4. javaスレッドのブロック
- 5. ロードDLLブロックUIスレッド
- 6. ブロックとスリープ状態の消費者スレッド/
- 7. ブロック/グリッドとスレッド/ブロックを活用するには?
- 8. CUDAブロックごとのスレッド、グリッドあたりのブロック数
- 9. SilverlightのブロックUIスレッドOnNavigatingFrom
- 10. iOS AVPlayer replaceCurrentItemWithPlayerItem:nilブロックUIスレッド
- 11. タスク継続ブロックUIスレッド
- 12. ブロック、現在のスレッドが
- 13. cudaカーネルのブロックとスレッドの数と使い方
- 14. ServerSocket.accept()でブロックされたスレッドのブロックを解除するには?
- 15. 新しいスレッドはまだUIスレッドをブロックしています
- 16. Thread.JoinもUIスレッドで子スレッドをブロックしています
- 17. Nettyスレッドがブロックされています
- 18. glGetErrorはスレッドをブロックできますか?
- 19. linqはスレッドをブロックしますか?
- 20. Java:スレッドごとの接続をブロックするコード例IO対NIO?
- 21. スレッドとブロックによるピクチャ配列のインデックス
- 22. 32ブロックの32スレッドはワープとしてスケジュールされますか?
- 23. 差分B/W TCB(スレッド制御ブロック)とPCB(プロセス)
- 24. Play&Akkaとデータベースアクセス用のスレッドをブロックする
- 25. CUDA:マルチプロセッサあたりのスレッドとブロックごとのスレッドの区別は何ですか?
- 26. これは問題ありませんか? (スレッド)同期化、スレッド=同期ブロック
- 27. スレッドがブロックされたとき。同じプロセスまたはプロセス全体で別のスレッドがブロックされる可能性がありますか?
- 28. スレッドとスレッド開始
- 29. EJBのスレッドとスレッド
- 30. JavaスレッドとOSスレッド
CやObjective-Cに関する質問はありますか? –
私はそれがあなたがブロックをどのように呼び出しているかに依存すると思う... –
@Let_Me_Be面白い質問...技術的にはCレベルで実装されていますが、Objective-Cで使用されているのを見たことがあります。 –