Python线程的疑问和请教

linkBG
  • 387

说疑问也不能是疑问,但是困扰有点久。
有一个想法,就是使用线程来实现并发的操作,但是始终搞不明白怎么去实现不同的客户使用不同的线程。
以下是我的个人想法。
首先,从数据库提取用户名,使用此用户名创建一个指定的线程,使用这个用户名来命名该线程。
这样是否可行呢?

其实最主要的是问,线程的名字,是否就是识别该线程是做什么任务的?

回复
阅读 1.8k
2 个回答

1、多线程性能很低,很不用就不用。
2、线程应该面向请求,而不是用户,可以一个请求一个线程,一般会预先创建好,俗称线程池。

问题一:怎么实现不同的客户使用不同的线程?

使用queue模块,1个线程操作1个队列,根据队列个数决定需要使用线程的个数
思路:从数据库中取用户名的时候按照一定的规则将这些用户名放入多个队列中,假设有10个队列(队列中用户名的个数不用相等),之后每个线程实例化的时候指定1个队列为其参数即可,比如:t1 = threading.Thread(target=func(),args=(queue1,)),具体不展开,参考threading模块

问题二:线程的名字是否就是识别该线程是做什么任务?

不是,如回答一中所提,t1就是一个线程实例,对应操作队列q1,t1才是你识别这个线程的标志

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏