005-Thread

Posted hhj-study-10years

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了005-Thread相关的知识,希望对你有一定的参考价值。

    主线程的特性 : 只有当所有子线程执行完毕后,主线程才会关闭
    守护(主)线程(daemonic=True) : 一旦主线程关闭,即使子线程仍在执行,也会立刻停止 (start()前设置)
    线程同步 : thread_a.join() --> 确保线程 thread_a 执行结束后,再执行其他线程 (start()后设置)
    1. 同步锁(互斥锁) : lock = threading.Lock(),lock.acquire(),lock.release()
        a. A lock is not owned by the thread that locked it; another thread may unlock it.  A thread attempting to lock a lock that it has already locked will block until another thread unlocks it.  Deadlocks may ensue.
    2. 原本线程的执行顺序是无序的,但是使用线程同步(join)后,执行顺序就是有序的(从上到下执行)
        a. 使用同步锁还是无序的
    3. 死锁 : (前提:) 所有线程都要抢锁,当一个暂时拿到锁的线程没有按时释放锁,其他线程一直等待的过程就是死锁。【 并不是只有占用锁的线程才可以释放锁,即使不抢锁的线程(方法内没有 lock.acquire()),也可以释放锁,这样就不会出现死锁 】
    4. 同一个线程只能启动一次,所以不能放在循环里 start()

 

以上是关于005-Thread的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数