Python并发:线程和锁
假如你选择行使Python中的原生线程模子,你也许会惊喜地发明logging模块不只是线程安详的,并且还支持从任何特定线程或历程举办日记记录(示例在logging手册)。然后,难点是在你的应用措施中那边更也许触发非常,这怎样影响你的线程模子以及确保在这些代码段周围举办靠得住的日记记录。将日记添加到你的应用也许会发生不小的耽误,正如pylint通过告诫模块logging-lazy-interpolation关照你那样,这也也许会给你的线程模子带来坚苦。 concurrent.futures 在撰写这篇文章时发明Python multiprocessing.pool.ThreadPool实现从未被记录或测试过,由于它从未完成,这让我感受很是不舒畅。它在Python3.7中如故照旧这样,由于它呈此刻GitHub镜像的源代码中。鉴于全局表明器锁的无所不在,以及将来并发措施首要是并行I/O相干的事变,行使Python3.x中提供的像concurrent.futures.Executor或相同的新异步模式也许更故意义,由于他们更全面。我没有行使过这个模块,但我想与multiprocessing对比,它不会发生显著的机能消费。 结论 Python对线程和锁具有根基的支持,它也许不像其他说话(譬喻Java)中的线程和锁那样成果全面且有效。在行使像Python等更高级此外表明说话举办操纵时,最好停止行使线程和锁。然而,Python确实提供了关于线程和锁定的足够友爱的曝光度,以便对线程和锁的事变方法举办精采的学术操练,也给并发界提供了冲感民气的先容。 英文原文:https://bytes.yingw787.com/posts/2019/01/12/concurrency_with_python_threads_and_locks/ 译者:南宫云遥 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |