python中有好几种多线程处理方式,更喜欢使用isAlive()来判断线程是否存活,笔记一下,供以后查找

# coding: utf-8
import sys, time
import threading def split_list_item_to_group(item_list, group_count):
"""
将传入的List中的元素拆分到多个List中,再将这些List作为一个List返回
:param item_list:
:param group_count:
:return:
"""
item_group_list = list()
for n in range(0, group_count):
item_group_list.append(list())
for num in range(0, len(item_list)):
mod_num = num % group_count
item_group_list[mod_num].append(item_list[num])
return item_group_list def print_number_with_thread(thread_paras):
number_group = thread_paras["number_group"]
for number in number_group:
print("number is {0}".format(number))
time.sleep(0.1) def demo():
number_list = list()
thread_count = 10
thread_list = list()
for number in range(0, 100000):
number_list.append(number)
number_group_list = split_list_item_to_group(number_list, thread_count)
for number_group in number_group_list:
thread_paras = {
"number_group": number_group,
}
thread_item = threading.Thread(target=print_number_with_thread, args=(thread_paras,))
thread_list.append(thread_item)
thread_item.start()
running_thread_count = thread_count
while running_thread_count > 0:
running_thread_count = len(filter(lambda item: item.isAlive(), thread_list))
print("正在运行的线程数:{0}".format(running_thread_count))
time.sleep(1)
print("多线程执行完成") demo()

在使用threading.Thread创建线程时,对传入的第一个参数有类型要求,为图方便,可以直接要传入的参数封装到一个dict中作为线程参数,然后在线程方法内部转换下。

=====================================================

Python--多线程处理的更多相关文章

  1. python 多线程处理框架

    多线程处理框架 python2.7 python3.5 多线程通用任务处理型驱动框架 probe_type 探测类型rtsp或者http task_queue 任务队列 task_handler 任务 ...

  2. python入门灵魂5问--python学习路线,python教程,python学哪些,python怎么学,python学到什么程度

    一.python入门简介 对于刚接触python编程或者想学习python自动化的人来说,基本都会有以下python入门灵魂5问--python学习路线,python教程,python学哪些,pyth ...

  3. Python: Socket网络编程,多线程处理小Demo

    一个简单的例子,深入研究一下socket的多线程处理任务 Server端: #!/usr/bin/env python #encoding:utf8 # # 注意:定义encoding时必须在第二行 ...

  4. python中协程

    在引出协成概念之前先说说python的进程和线程. 进程: 进程是正在执行程序实例.执行程序的过程中,内核会讲程序代码载入虚拟内存,为程序变量分配空间,建立 bookkeeping 数据结构,来记录与 ...

  5. 使用Python统计深圳市公租房申请人省份年龄统计

    使用Python,HtmlParser来统计深圳市保障房申请人的原籍省份分布,年龄分布等.从侧面可以反映鹏城人的地域分布.以下python代码增大了每一次获取的记录数,从而少提交几次请求.如果按照WE ...

  6. python selenium与自动化

    大学是学习过java,但是工作中没用,忘完了,而且哪怕以后有了机会,就是很不愿意去学这个语言,开始喜欢上了c#,但是随着学的升入,感觉.net太庞大了,要学习那么多,总感觉我学这个要做什么,感觉要做的 ...

  7. Python从线程获取函数返回值

    Python中利用强大的threading模块可以很容易的实现多线程开发,提高运行速度.这一般是对某个进行大量计算操作的的函数进行多线程处理,然后合并各线程的结果.获取函数返回值的方法可以如下: 1) ...

  8. python学习笔记12 ----线程、进程

    进程和线程的概念 进程和线程是操作系统中两个很重要的概念,对于一般的程序,可能有若干个进程,每一个进程有若干个同时执行的线程.进程是资源管理的最小单位,线程是程序执行的最小单位(线程可共享同一进程里的 ...

  9. 协程python

    python中协程 在引出协成概念之前先说说python的进程和线程. 进程: 进程是正在执行程序实例.执行程序的过程中,内核会讲程序代码载入虚拟内存,为程序变量分配空间,建立 bookkeeping ...

  10. Python之线程、进程和协程

    python之线程.进程和协程 目录: 引言 一.线程 1.1 普通的多线程 1.2 自定义线程类 1.3 线程锁 1.3.1 未使用锁 1.3.2 普通锁Lock和RLock 1.3.3 信号量(S ...

随机推荐

  1. django添加装饰器

    引入模块: from django.utils.decorators import method_decorator 添加:@method_decorator(func) from django.ut ...

  2. netstat 查看端口命令

    查看特定端口是否启动 netstat -lnp |

  3. Exception 异常 输出的各个方法的区别

    try{ System.out.println(1/0); }catch(Exception e){ //System.out.println(e+""); //对象+字符串 = ...

  4. Django 文章标签功能

    使用第三方框架django-taggit为模型添加标签功能,此模块是一个可复用的应用 首先安装 https://github.com/alex/django-taggit 这是项目主页 pip ins ...

  5. 494. Target Sum - Unsolved

    https://leetcode.com/problems/target-sum/#/description You are given a list of non-negative integers ...

  6. 还一道区间DP -- MZOJ 1346: 不老的传说

    http://10.37.2.111/problem.php?id=1346 与上一道染色基本一样,就加了个限制条件(一次最多刷maxd) #include <bits/stdc++.h> ...

  7. 【转】ssh-copy-id帮你建立信任

    本原创文章属于<Linux大棚>博客. 博客地址为http://roclinux.cn. 文章作者为roc. == 对于做运维的同学来说,给两台UNIX/Linux机器建立ssh信任关系是 ...

  8. 2018.12.08 codeforces 946D. Timetable(背包)

    传送门 题意简述:有一个人上n天课,每天有m个小时的时间安排表(一个01串),为1表示要上课,否则不上课,求出如果可以最多翘kkk节课这nnn天在校待的总时间的最小值(一天必须在所有课上完后才能离开) ...

  9. SPRING 事务管理说明

    spring 事务管理是通过AOP拦截指定的方法,进行事务管理. 事务配置 <aop:config proxy-target-class="true"> <aop ...

  10. orika实现对象复制

    1.新建maven工程orika-demo,引入orika依赖,其中pom.xml如下 <?xml version="1.0" encoding="UTF-8&qu ...