teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

2021/10/10 00:23

投稿

退会済みユーザー
answer CHANGED
@@ -8,16 +8,16 @@
8
8
  def sub_loop(que):
9
9
  while True:
10
10
  time.sleep(1)
11
- msg = que.get() # 一個だけ突っ込んだ一個を取り出す(もしQUEが空なら、QUEが詰まるまで待機しますので注意です)
11
+ msg = que.get() # 一個だけ突っ込んだ一個を取り出す(もしQUEが空なら、QUEが詰まるまで待機しますので注意です。必要ならQueが空かの判定を挟んでください
12
12
  print("sub_loop",msg)
13
13
 
14
- que = queue.Queue(1) #キューに一個だけデータを入れる
14
+ que = queue.Queue(1) #キューに一個だけデータを入れる箱を用意する
15
15
  th = Thread(target=sub_loop,args=(que,),daemon=True)
16
16
  th.start()
17
17
 
18
18
  while True:
19
19
  print("main")
20
- que.put(time.time())
20
+ que.put(time.time()) # キューに1つだけデータを突っ込む
21
21
  time.sleep(0.5)
22
22
 
23
23
  ```

1

2021/10/10 00:23

投稿

退会済みユーザー
answer CHANGED
@@ -36,4 +36,11 @@
36
36
  Pipe:本当にプロセス間通信用に作られた技術です。オブジェクトを共有するイメージと思います。Lockだとかいろいろ概念があってとっつきにくいですが、Queueよりいろいろできると思います。
37
37
 
38
38
  どの組み合わせでも動くと思いますが、一番シンプルなサンプルを掲載しましたので、こんな感じでメインのループを走らせる前にサブループを別のプロセスかスレッドで回せばいいな、と捉えていただければと思います。
39
- ※GUIを使おうとすると、GUIだけでもう一つスレッドあった方が良いと思います。
39
+ ※GUIを使おうとすると、GUIだけでもう一つスレッドあった方が良いと思います。
40
+
41
+ ---
42
+
43
+ > もう1個の問題としてはTCP通信で得たデータをtkinterのメッセージボックスに表示させる
44
+ ために text=  にどのような変数などを入れたらいいかが分かりません。
45
+
46
+ Tkのラベルは、[textvariable=str(表示したい変数)](http://hanairosoft.skr.jp/programming/tkinter-entry.html#item2)でいけそうです。いかがでしょうか?