Python线程数据交互详细操作教程
  
 
 # Filename : example.py
# Copyright : 2020 By Bianchenghao6
# Author by : bianchenghao6.com
# Date : 2020-08-22
 from multiprocessing import Process, Queue
 import queue
 import random
 def f(q):
    q.put([42, None, 'hello'])
 def main():
    q = Queue()
    p = Process(target = f, args = (q,))
    p.start()
    print (q.get())
 if __name__ == '__main__':
    main()
 
 [42, None, 'hello']
 
  它返回一对代表管道两端的连接对象。
  每个对象都有两个方法–  send()和 recv(),用于在进程之间进行通信。  
 # Filename : example.py
# Copyright : 2020 By Bianchenghao6
# Author by : bianchenghao6.com
# Date : 2020-08-22
 from multiprocessing import Process, Pipe
 def f(conn):
    conn.send([42, None, 'hello'])
    conn.close()
 if __name__ == '__main__':
    parent_conn, child_conn = Pipe()
    p = Process(target = f, args = (child_conn,))
    p.start()
    print (parent_conn.recv())
    p.join()
 
 [42, None, 'hello']
 
  管理器的主要属性是控制服务器进程,该进程管理共享对象。
  另一个重要的属性是在任何进程修改它时更新所有共享对象。 
 # Filename : example.py
# Copyright : 2020 By Bianchenghao6
# Author by : bianchenghao6.com
# Date : 2020-08-22
 import multiprocessing
 def print_records(records):
    for record in records:
       print("Name: {0}\nScore: {1}\n".format(record[0], record[1]))
 def insert_record(record, records):
    records.append(record)
       print("A New record is added\n")
 if __name__ == '__main__':
    with multiprocessing.Manager() as manager:
       records = manager.list([('Computers', 1), ('Histoty', 5), ('Hindi',9)])
       new_record = ('English', 3)
       p1 = multiprocessing.Process(target = insert_record, args = (new_record, records))
       p2 = multiprocessing.Process(target = print_records, args = (records,))
 p1.start()
       p1.join()
       p2.start()
       p2.join()
 
 # Filename : example.py
# Copyright : 2020 By Bianchenghao6
# Author by : bianchenghao6.com
# Date : 2020-08-22
 A New record is added
 Name: Computers
 Score: 1
 Name: Histoty
 Score: 5
 Name: Hindi
 Score: 9
 Name: English
 Score: 3
 
 # Filename : example.py
# Copyright : 2020 By Bianchenghao6
# Author by : bianchenghao6.com
# Date : 2020-08-22
 import multiprocessing
 def Mng_NaSp(using_ns):
    using_ns.x +=5
    using_ns.y *= 10
 if __name__ == '__main__':
    manager = multiprocessing.Manager()
    using_ns = manager.Namespace()
    using_ns.x = 1
    using_ns.y = 1
    print ('before', using_ns)
    p = multiprocessing.Process(target = Mng_NaSp, args = (using_ns,))
    p.start()
    p.join()
    print ('after', using_ns)
 
 before Namespace(x = 1, y = 1)
 after Namespace(x = 6, y = 10)
 
 # Filename : example.py
# Copyright : 2020 By Bianchenghao6
# Author by : bianchenghao6.com
# Date : 2020-08-22
 def f(n, a):
    n.value = 3.1415927
    for i in range(len(a)):
    a[i] = -a[i]
 if __name__ == '__main__':
    num = Value('d', 0.0)
    arr = Array('i', range(10))
    p = Process(target = f, args = (num, arr))
    p.start()
    p.join()
    print (num.value)
    print (arr[:])
 
 3.1415927
 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
 
  
 
 pip install PyCSP
 
完成的
 # Filename : example.py
# Copyright : 2020 By Bianchenghao6
# Author by : bianchenghao6.com
# Date : 2020-08-22
 from pycsp.parallel import *
 import time
 @process
 def P1():
    time.sleep(1)
    print('P1 exiting')
 @process
 def P2():
    time.sleep(1)
    print('P2 exiting')
 def main():
    Parallel(P1(), P2())
    print('Terminating')
 if __name__ == '__main__':
    main()
 
 P2 exiting
 P1 exiting
 Terminating