-1

Python フレームワークに Web アプリケーションがあります。そして、複雑な計算用の C 関数を作成しました。Python Handler が受け取ったクエリを引数として C 関数に渡し、結果を HTML でレンダリングしたいと考えています。

Python から C 関数を呼び出すだけでなく、Python からの多くの並列要求があり、すべての「C スレッド」が共有する必要がある共通のリソースがあります。

C の代わりに、Java を使用していた場合は、ソケットと Java マルチスレッドを使用して、Python ハンドラーからの同時要求を処理します。

Cで同様のことを行うにはどうすればよいですか? Python から C へのマルチスレッド ライブラリとソケット ライブラリはありますか? それを行う標準的な方法は何ですか

4

1 に答える 1

0

Python は C で書かれており、独自の Python/C 関数を作成するために使用できる非常に完全なC-APIがあります。残念ながら、GIL (グローバル インタープリター ロック) により、Python には軽量のマルチスレッド インターフェイスがありませんが、返すものに注意している限り、C-API にはこれらの制限はありません。

これが気に入らない場合、一般的な代替手段にはcythonまたはctypesが含まれます。

Cython は、Python 言語の C 拡張機能を Python 自体と同じくらい簡単に作成できる言語です。

一方

ctypes は Python 用の外部関数ライブラリです。C 互換のデータ型を提供し、DLL または共有ライブラリで関数を呼び出すことができます。これらのライブラリを純粋な Python でラップするために使用できます。

于 2013-02-27T10:27:44.433 に答える