并发篇-python多线程-1

回顾下,什么是线程?

线程被称作轻量级进程。与进程类似,不过它们是在同一个进程下执行的。

并且它们会共享相同的上下文。当其他线程运行时,它可以被抢占(中断)和临时挂起(也称为睡眠) ;

线程的轮询调度机制类似于进程的轮询调度。只不过这个调度不是由操作系统来负责,而是由Python解释器来负责。

GIL锁

遇到阻塞就自动切换。

因此可以利用这种机制来有效的避开阻塞 ~

充分利用CPU。

>>>使用多进程实现并发服务器

>>>使用多线程实现并发服务器

# 线程中的逻辑

>>>def worker(conn):

# 每生成一个对等连接套接字,就生成一个线程,并交由这个线程去服务

>>>thread = threading.Thread(target=worker, args=(conn,))

# 启动线程

>>>thread.start()

效果,棒棒哒~

多进程与多线程的最大不同在于,多进程中,同一个变量,各自有一份拷贝存在于每个进程中,互不影响。而多线程中,所有变量都由所有线程共享,所以,任何一个共享变量都可以被任何一个线程修改。因此线程之间共享数据最大的危险在于多个线程同时改变一个变量。

原文发布于微信公众号 - 数据云团(SmartData)

原文发表时间:2018-12-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券