問題タブ [shelly]
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.
haskell - QSemはスレッドをブロックしていないようです
Shellyライブラリを使用して一連のタスクを並行して実行する簡単なスクリプトを作成していますが、一度に実行するタスクの最大数を制限したいと思います。スクリプトは、各行に入力があるファイルを取得し、その入力に対してタスクを実行します。ファイルには数百の入力があり、一度に約16プロセスに制限したいと思います。
現在のスクリプトは、初期カウントが1のQSemを使用して、実際には1に制限されています(うまく試行されます)。ただし、4つの入力を持つテストファイルで実行すると、次のように表示されます。
したがって、スレッドはQSemでブロックされていません。予想どおり、すべて同時に実行されています。私は自分のセマフォを実装するところまで行ってMVar
おりTVar
、どちらも期待どおりに機能しませんでした。私は明らかに基本的な何かが欠けていますが、何ですか?また、コードをコンパイルしてバイナリとして実行してみました。
multithreading - Shelly.Background で外部実行可能ファイルを呼び出すと、メイン実行可能ファイルがビジーになるのはなぜですか
Delphi プロジェクトを並行してコンパイルするために、 Shellyでプログラムを作成しようとしています。Delphi コンパイラが戻るのを待っている間、プログラムはブロックされると思いました。しかし、私のプログラムは、2 つのプロジェクトをコンパイルした後、1 つの CPU コアを使い果たし始めます。何がそんなに忙しいのか理解できませんでした。助けてください?ありがとう。
ps: 私は Haskell にまったく慣れていません。これを正しい方法で実装していない場合は、ポインタをいただければ幸いです。
haskell - Shelly で外部プロセスを実行するときに複数行の出力を処理するにはどうすればよいですか?
Text -> [Text]
基本的に、改行に基づいてテキストを分割するtype の関数を探しています。ただし\n
、これはたとえばのようにエスケープできるため、分割することはできませ\\n
ん。他にどのような合併症があるかわかりません。
Main.hs
たとえば .sh
の出力./example.sh
:
したがって、これは3行の出力です。
Shelly は上記を処理する機能をサポートしていますか? それとも、出力を解析するための他の Haskell ライブラリでしょうか? 私はそれが次のように見えると思いますが、出力されるのではputStrLn
なく、に出力さIO ()
れ[Text]
ますか?