亲宝软件园·资讯

展开

python线程安全及多进程多线程实现方法详解

人气:0

进程和线程的区别

什么是线程安全

一个线程的修改被另一个线程的修改覆盖掉。

python中哪些操作是线程安全的

线程同步的方式

进程间的通信方式 (IPC:Inter-Process Communication 进程间传递信号或者数据)

多线程的例子

# python实现多线程
import threading

lock = threading.Lock()

n = [0]

def foo():
  with lock:  # 加锁
    n[0] = n[0] + 1
    n[0] = n[0] + 1


threads = [] # 用来储存所有线程
for i in range(5000):
  t = threading.Thread(target=foo)  # 传入foo函数
  threads.append(t)
for t in threads:
  t.start()

print(n)

多进程的例子

python有GIL,可以用多进程实现cpu密集程序

# 多进程

import multiprocessing

def fib(n):
  if n<= 1:
    return 1
  return fib(n-1) + fib(n-2)



if __name__ == '__main__':
  jobs = []
  for i in range(10,20):
    p = multiprocessing.Process(target=fib, args=(i,))
    jobs.append(p)
    p.start()
您可能感兴趣的文章:

加载全部内容

相关教程
猜你喜欢
用户评论