🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

2回答

3110閲覧

Pythonista3でスレッドかプロセスを作りたい。Xcode使用可

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2019/09/27 06:41

前提・実現したいこと

Pythonista3でiOS用のマルチ専用ゲームを作っています。
その際に常にサーバーに接続して情報をやり取りする必要があるので、スレッドかプロセスをもう一つ作り、そこで通信をしメインプロセスでゲームの処理をしようと考えています。
しかし、Pythonista3で
thread
multiprocessing
concurrent.future
などのスレッドやプロセスを作る方法を取っても出来ませんでした。
調べてみるとPythonista(もしくはPython?)のiOS用上でサブのスレッドやプロセスは作れないそうです。
ただ全く出来ないわけはないと思うので(python,iOSを使って通信をしつつ快適に動作しているアプリもあるため)その方法があったら教えていただきたいです。

swiftなどは触ったことはほぼないですがXcodeと連携して処理を実行できるならそれも試してみたいと思います。
Pythonistaのビルドに使用したのはPythonistaの公式で出されている
https://forum.omz-software.com/topic/5310/when-will-omz-release-an-xcode-template-for-python3
このテンプレートを使用しました。

情報が少ないので行き詰まっています。
よろしくお願いします。

該当のソースコード

Python3

1import threading 2import time 3import multiprocessing 4from concurrent.futures import * 5import queue 6 7def th1(): 8 for i in range(5): 9 time.sleep(1) 10 print(i) 11 12def th2(): 13 for i in range(5): 14 time.sleep(1) 15 print(i) 16 17 18# 1 19t1 = threading.Thread(target=th1) 20t2 = threading.Thread(target=th2) 21print('start') 22t1.start() 23t2.start() 24 25# 2 26''' 27q = queue.Queue() 28t1 = threading.Thread(target=th1, args=(q, )) 29t2 = threading.Thread(target=th2, args=(q, )) 30print('start') 31t1.start() 32t2.start()''' 33 34# 3 35''' 36t1 = multiprocessing.Process(target=th1) 37t2 = multiprocessing.Process(target=th2) 38print('start') 39t1.start() 40t2.start()''' 41 42# 4 43''' 44executer = ProcessPoolExecutor(max_workers=3) 45print('start') 46executer.submit(th1) 47executer.submit(th2)'''

試したこと

上記の方法とプラスα何かしたと思います。
出力結果はどれも

start 0 1 2 3 4 0 1 2 3 4

だったと思います。

補足情報(FW/ツールのバージョンなど)

環境としては
iPhone XS iOS 13.1
Xcode 最新
です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

解決法(おそらく大丈夫)

質問投稿の数十分後ですみません。

import threading import time class th1(threading.Thread): def __init__(self): super(th1, self).__init__() def run(self): for i in range(0, 5): time.sleep(1) print(i) class th2(threading.Thread): def __init__(self): super(th2, self).__init__() def run(self): for i in range(0, 5): time.sleep(1) print(i) if __name__ == '__main__': t1 = th1() t2 = th2() t1.start() t2.start()

まだ明確に自分のプログラムに向けて調整した訳では無いので本当にこれでいけるのかは定かではありませんがおそらく行けると思います。

他の方の役に立てば嬉しいです。

投稿2019/09/27 06:59

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

解決法(おそらく大丈夫)

質問投稿の数十分後ですみません。

import threading import time class th1(threading.Thread): def __init__(self): super(th1, self).__init__() def run(self): for i in range(0, 5): time.sleep(1) print(i) class th2(threading.Thread): def __init__(self): super(th2, self).__init__() def run(self): for i in range(0, 5): time.sleep(1) print(i) if __name__ == '__main__': t1 = th1() t2 = th2() t1.start() t2.start()

まだ明確に自分のプログラムに向けて調整した訳では無いので本当にこれでいけるのかは定かではありませんがおそらく行けると思います。

投稿2019/09/27 06:58

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問