一つのCPUで、2つの動作を行いながら、それらの間でやりとりをしたいと考えています。
というのも、Raspberry PiとiOSアプリ間でBluetooth通信を行いながら、必要に応じてRaspi上でPythonスクリプトを実行したいからです。

実際にそのようなことは可能でしょうか?

今考えている構成は次のようなものです。


Pythonを実行している時に、threadingモジュールで2スレッドに分けます。

  1. 一つ目のスレッドでは、subprocessモジュールによってjavascriptファイルを実行します

    この実行中のjavascript(node.js)では、blenoというモジュールを用いて、bluetooth peripheralとして動作させます

  2. 二つ目のスレッドでは、通常のPythonスクリプトが実行されています。例えば、Raspiの純正カメラの制御などを行います。 さらに、こちらはサーバーとして動作させます。一つ目のスレッドのjavascriptの要求に応じて、写真を取得したり、測定時間を返したりします。これはjQueryやAjaxを使うのが有効であるようです。

画像の説明をここに入力


上述のような構成で可能なのかどうか、他にうまいやり方があるかどうか、と言った内容についてご回答いただければ幸いです。


追記:

blenoをわざわざ使う理由(bluezやpybluezなどではなく)は、blenoのインターフェイスが非常に分かりやす‌​いからです。サービスやキャラクタリスティ‌​ックとしての実装が簡単です。