课程
/后端开发
/Python
/python必学模块-collections
老师您好,什么叫做线程安全???
2018-01-31
源自:python必学模块-collections 5-1
正在回答
简单理解就是抢资源,抢到了就进行相应操作,抢不到就干哭,报错.所以才需要锁来守护线程运行的安全,又因为锁,python的多线程才变得如此鸡肋.
我不是老师,计算机专业大三学生一枚,至于线程安全,你可以去看看博客,讲定义不如看例子呢
在线程里面,线程共享进程里的资源,假设进程里面有一个list, 如果你开了多个线程去删除它的一个元素,那么它可能可能被一个线程给删了某个元素,但是另一个线程也想删除这个元素,然而它早就被其他线程删除了,这就会引发线程安全问题,也就是说列表是线程非安全的,你可能会问这些线程怎么会操作同一个元素呢,不是被某个线程删了就不会出现在list里了吗?确实,有这种疑问很正常,那是因为线程之间有个东西叫时间片,如果这个时间片用完了就会切换线程对吧,切换时被切换的线程可能还没有完成删除操作就被其他线程占了cpu,然后占了cpu的线程把元素删了,切换回来的时候,那个线程想删,哦,没有了,只能报错,对吧
木易楊__
这涉及并发控制的知识,线程之间会有通信,有的需要互相等待,有的必须顺序执行,有的不能同时执行等等,这是就需要对并发线程的执行加以控制,而控制的手段之一就是上锁,锁的种类很多,比如互斥锁和共享锁。
简单的讲就是一个房间同时只能一个人进,当每一个人进去后就上锁.后面要等前面的出来才能进.
举报
快速理解python中基于基础数据结构的高级数据结构,让代码更精简且高效。
1 回答老师您好!_asdict() 返回的字典 不是有序排列的
1 回答课程很好!
3 回答Bobby老师下门实战课程是什么?期待啊
1 回答查看源码,不如老师的这个全
1 回答老师提问