1.多线程情况下尽量不要去修改全局变量,容易被其他线程所修改,而string被修改后地址也会变更,会造成指针指向的区域是已经被回收的区域。 2.最好只有一个地方或线程修改,还要注意读写锁的问题。 3.多线程下全局变量修改要谨慎,再加上修改的还是字符串类型更要注意,数字型的还好一点。 4.碰到问题一定要思考把背后...
线程本地数据是特定线程的数据。管理线程本地数据,只需要创建一个local (或者一个子类型)的实例并在实例中储存属性: mydata = threading.local() mydata.x = 1 1. 2. 在不同的线程中,实例的值会不同。 二、两种用法 用法1:实例化 介绍该用法之前,看看如果没有local对象介入的情况下,子线程共享主线程对象...
使用Condition 对象可以在某些事件触发或者达到特定的条件后才处理数据,Condition 除了具有 Lock 对象的 acquire 方法和 release 方法外,还提供了 wait 和 notify 方法。 线程首先 acquire 一个条件变量锁。如果条件不足,则该线程 wait,如果满足就执行线程,甚至可以 notify 其他线程。其他处于 wait 状态的线程接到通知...