pythonでプログラミング! -threading!2
threadを試していく上でいろんな環境でやってみた結果です。
簡単に試そうとgoogleのcolab、Psiza.ioと試してみましたが少しおかしい挙動となってしまいました。
colabではすぐに停止してしまいます。paizaもすぐにタイムアウトとなってしまいました。
一番いいのは仮想化して起動しているUbuntuの環境ですかね。あとDockerでpython環境の構築して試すのがよかったですね。
Dockerでやったことを記録しておきます。
Docker for Mac のKaitematicを起動してまずContienerを検索、今回は"jupyter notebook"で検索してdatascience-notebookをCreate!します。
作業が終わるとこんな感じで表示されます。EXECをクリック!して
$ jupyter notebook
とコマンド打ってreturn!して、
この赤枠の部分をコピーしておきます。
の部分をクリック!してブラウザが起動されます。
が出てくるのでさっきコピーしたものをPasswordのところに入れログイン!
無事ログインできているのが確認できると思います。
新規ファイルを作ってthread試してみます。
import threading
import time
def foo():
for i in range(10):
time.sleep(1)
print("foo:"+str(i))
def foo2():
for i in range(10):
time.sleep(2)
print("hoge:"+str(i))
th=threading.Thread(target=foo)
th.start()
th2=threading.Thread(target=foo2)
th2.start()
RUNすると、
foo:0
foo:1
hoge:0
foo:2
foo:3
hoge:1
foo:4
hoge:2
foo:5
foo:6
hoge:3
foo:7
foo:8
hoge:4
foo:9
hoge:5
hoge:6
hoge:7
hoge:8
hoge:9
こんな感じで出力されます。並列で実行されているのがわかりますね。