相关疑难解决方法(0)

如何在Python中使用线程?

我试图理解Python中的线程.我看过文档和示例,但坦率地说,很多例子都过于复杂,我很难理解它们.

你如何清楚地展示为多线程划分的任务?

python concurrency multithreading python-multithreading

1210
推荐指数
18
解决办法
94万
查看次数

Python中的+ =运算符是否是线程安全的?

我想为实验创建一个非线程安全的代码块,这些是2个线程要调用的函数.

c = 0

def increment():
  c += 1

def decrement():
  c -= 1
Run Code Online (Sandbox Code Playgroud)

这段代码线程安全吗?

如果没有,我可以理解为什么它不是线程安全的,以及什么样的语句通常会导致非线程安全的操作.

如果它是线程安全的,我怎样才能使它明确地是非线程安全的?

python increment thread-safety

43
推荐指数
6
解决办法
2万
查看次数

扩展Python列表(例如l + = [1])保证是线程安全的吗?

如果我有一个整数i,i += 1在多个线程上做是不安全的:

>>> i = 0
>>> def increment_i():
...     global i
...     for j in range(1000): i += 1
...
>>> threads = [threading.Thread(target=increment_i) for j in range(10)]
>>> for thread in threads: thread.start()
...
>>> for thread in threads: thread.join()
...
>>> i
4858  # Not 10000
Run Code Online (Sandbox Code Playgroud)

但是,如果我有一个列表l,l += [1]在多个线程上做似乎是安全的:

>>> l = []
>>> def extend_l():
...     global l
...     for j in range(1000): l += [1]
... …
Run Code Online (Sandbox Code Playgroud)

python multithreading thread-safety python-multithreading

22
推荐指数
2
解决办法
621
查看次数