Python的Thread幾乎是廢了,可以改用multiprocessing和psutil取代。
Thread目前有一個大缺點,就是不會因為CPU是多核心,
就用多核執行,而是一次只執行一個Thread.
這點可用multiprocessing的Process取代,multiprocessing可用多核心,
不過有一個地方要注意,就是Process的全域變數,是使用script的initial value.
不像Thread仍然保留目前狀態的全域變數值,
當然,如果變數都沒有改變,那用initial value也沒有關係,
否則可將目前變數,當作arguments傳入。
另外,若是單純想對process做一簡單操作,可搭配使用psutil, e.g.
p = Process(target=example.main, args=())
p.start()
ps = psutil.Process(p.pid)
# 之後若是想
# 暫停
ps.suspend()
# 回復
ps.resume()
# 中止
ps.terminate()
# Thread的話,我查了半天,似乎沒有簡單做法可以達成
# Thread似乎是使用wait(), notify()... 但是不好弄,且好像無法簡單做成的樣子
2020年2月26日 星期三
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言