wechat

python线程池ThreadPoolExecutor(上)(38)

你离开我真会死。 提交于 2020-04-30 04:06:21
在前面的文章中我们已经介绍了很多关于python线程相关的知识点,比如 线程互斥锁Lock / 线程事件Event / 线程条件变量Condition 等等,而今天给大家讲解的是 线程池ThreadPoolExecutor,可能很多小伙伴会疑惑,threading 模块能创建线程,ThreadPoolExecutor 也能创建线程,两者都有什么区别呢? 众所周知,程序中使用线程会提高运行效率,虽然线程是计算机的最小单位,但是线程的创建和使用一样会占用计算机资源和产生开销,一旦创建成千上万的线程,计算机一样会死机!一个合理的程序永远都是以消耗最少的资源干最多的事,就像公司老板,永远都想以最少的钱,招最少的人,干最多的事! 哪个二货在背后说我 一.线程池原理 大家都使用过迅雷下载,当同时下载1000个任务甚至更多的时候,就算开通vip同时下载的数量也只有8个。如果同时创建1000个线程,首先对计算器的开销也很大,而且每次只运行8个线程,需要不停的创建和销毁,这样会显得很麻烦。 而使用线程池ThreadPoolExecutor就可以解决上面的问题,其实只需要8个线程就行了,每个线程各分配一个任务,剩下的任务排队等待,当某个线程完成了任务的时候,排队任务就可以安排给这个线程继续执行,这就是所谓的线程池ThreadPoolExecutor原理! 二

python frozenset集合(17)

戏子无情 提交于 2020-04-29 20:59:25
在前一篇文章中我们对 python set集合 做了详细的讲解,而本文讲解的 frozenset集合 其实和set集合类似!区别在于frozenset集合不能修改/添加/删除,其他功能和set集合一样,这就有点类似列表list和元组tuple的区别。 一.frozenset集合语法 # 创建一个frozenset集合 a = frozenset(iterable) 其中 iterable 是序列或者可迭代对象,并返回frozenset集合 二.frozenset集合使用 # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解忧 @Blog(个人博客地址): shuopython.com @WeChat Official Account(微信公众号):猿说python @Github:www.github.com @File:python_frozenset.py @Time:2019/11/10 21:25 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ a = frozenset([ " q123 " , " python " , " frozenset " ]) print (a) # 获取a的类型 print (type(a)) #

Kubernetes 构造可自由扩展的 Jenkins

僤鯓⒐⒋嵵緔 提交于 2020-04-29 20:13:07
本文首发于: Jenkins 中文社区 原文链接 作者:Gaurav Agarwal 如果你是一名在职软件工程师,那你大概率已经使用过 Jenkins,至少听说过。 Jenkins 是目前最受欢迎的开源持续集成与持续交付(CI/CD)工具。为何它会受到如此多用户的追捧?诸如 CloudBees 这样的组织及相关优秀社区提供了坚实的帮助与支持,此外,一大批开发人员贡献了数以千计的插件,加上 Jenkins 良好的易用性,都让 Jenkins 从开源工具中脱颖而出。 基于以上特点,Jenkins 可以轻松实现以下事情: 结合主流版本管理工具,如 Git,Subversion 和 Mercurial; 集成代码质量管理工具,如 Sonarqube,Fortify; 使用 Maven 或 Gradle 构建 ; 使用 Junit 进行单元测试; 虽然 Jenkins 如此强大,但其入门使用却非常简单,你只需要准备一个 Web 应用服务器如 Tomcat 和一份可执行的安装文件 jenkins.war 即可。Jenkins 的运行方式有很多种,这里将介绍几种非常典型的方式。 独立的 Jenkins 服务器 在这种模式下,只有一个 Jenkins 服务器负责所有的构建任务并使用 TCP 连接部署到远程服务器上。这也是最简单的一种方式,你完全不需要担心其他可变因素。 主从策略 采用单机模式运行

《2019年全国生态气象公报》

假如想象 提交于 2020-04-29 17:45:20
更多精彩,请点击上方蓝字关注我们! 2020年4月29日,中国气象局面向社会发布 《2019年全国生态气象公报》 ,对2019年我国地表生态环境状况进行总结和回顾。****《公报》要点如下: 全国大部气象条件有利于植被生态质量的提高 2019 年全国大部地区水热条件正常偏好,有利于植被生长,全国植被生态质量指数为 67.6,较常年提高 6.1%,生态质量属偏好年份;但 2019 年区域性、阶段性干旱和低温等灾害影响较重,造成全国植被净初级生产力较水热条件优越的2018 年减少 25 克碳 / 平方米,植被生态质量总体不如 2018 年。从 2000-2019 年变化趋势来看, 全国有 93% 的区域年平均气温呈升高趋势,有 80.6% 的区域年降水量呈增加趋势,良好的水热条件有利于植被生长 ;加之植树造林种草、退耕还林还草等生态建设工程的实施,有力地促进了植被生态质量向好发展。其中,2000 年以来全国植被净初级生产力平均每年增加 3.6 克碳 / 平方米,植被覆盖度平均每年提高 0.25 个百分点, 气象条件和生态建设工程对植被生态质量的提高均起到了重要作用。 植被生态质量指数:以植被净初级生产力(NPP)和植被覆盖度的综合指数来表示,其值越大,表明植被生态质量越好。 全国主要生态系统气象监测评估 2019 年南方大部林区遭受严重干旱,部分林区植被净初级生产力较 2018 年减少

HashMap 为什么线程不安全?

冷暖自知 提交于 2020-04-29 15:14:17
作者:developer http://cnblogs.com/developer_chan/p/10450908.html 我们都知道 HashMap 是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。 1、jdk1.7中的HashMap 在jdk1.8中对 HashMap 做了很多优化,这里先分析在jdk1.7中的问题,相信大家都知道在jdk1.7多线程环境下 HashMap 容易出现死循环,这里我们先用代码来模拟出现死循环的情况: public class HashMapTest { public static void main(String[] args) { HashMapThread thread0 = new HashMapThread(); HashMapThread thread1 = new HashMapThread(); HashMapThread thread2 = new HashMapThread(); HashMapThread thread3 = new HashMapThread(); HashMapThread thread4 = new HashMapThread(); thread0.start(); thread1.start(); thread2.start(); thread3

Intellij IDEA 那些隐藏好用的小技巧

假装没事ソ 提交于 2020-04-29 11:51:39
作者:Sam哥哥 https://blog.csdn.net/linsongbin1/article/details/80560332 概述 之前写了一篇介绍IntellIJ IDEA的文章《 Intellij Idea非常6的10个姿势 》,主要是列出一些平时大家可能没用过或者没怎么用,但是又非常好用的 IntellIJ IDEA 小技巧。由于篇幅原因,只是列出了一小部分,那么接下来的这篇文章,会继续补充一些 IntellIJ IDEA 的小技巧。 别轻易自定义快捷键 有蛮多操作, IntellIJ IDEA 并没有给我们设置默认快捷键,需要使用者自己去定义快捷键。比如说: Rebuild Project Compare With Branch 为了能在 IntellIJ IDEA 里进行 无鼠标编程 ,很多程序员都会自定义快捷键,但是有三个地方你可能需要注意一下。 经常会出现快捷键与其他应用的快捷键冲突的情况; 自定义太多快捷键了,你也不太好记住; 使用其他同事的IDEA时(比如说帮忙定位问题),你自定义的快捷键没法用。 其实在 IntellIJ IDEA 里的每个操作,都可以看出一个 action 。我们可以使用 ctrl+shift+a 来输入我们要使用的操作。比如说,上面提到的 Rebuild Project 。你可以先使用 ctrl+shift+a 快捷键,然后输入

一年只需49,不来跟我一起薅羊毛?

扶醉桌前 提交于 2020-04-29 10:27:19
今天和大家分享薅云主机羊毛的事情,很多朋友可能觉得,我有一台云主机能做什么呢? 拥有一台云主机后,你可以: 搭建 Git 或者 SVN 随时随地都能码代码的体验试问谁不喜欢?搭建一个属于自己的协同平台,还可以作为代码库用,这样面试也不虚。 搭建自己的博客 搭建一个技术博客吧,看着搜索引擎把自己的文章收录了是一件很酷的事情!当然,其实有很多免费的博客平台可以创建(CSDN、博客园、新浪),可是开放性不高,如果喜欢技术,还是可以自己搭建,想怎么玩就怎么玩(当然是要合法的啦) 做一个穿透 一些大型的平台,和一些远程的工具,可以部署在没有公网 IP 的台式电脑上,然后通过穿透,外网就可以连接访问了,这样对于一些配置需要高的项目来讲是个不错的选择 学习 学习 Linux,再也不用双系统了 awesome-selfhosted 在 Github 上有一个开源的项目,上面记录着各种各样分类的免费服务器应用,这个项目到目前为止已经有 43.9k 的 Star。 青小云带大家一起薅羊毛 可是云主机对于很多个人开发者或者想要学习的朋友而言,价格有点贵。 所以,这次云主机优惠你就千万别错过了哦! 主机、MySQL 等爆款产品 没有套路,直接底价 49 一年,不限名额,抢不停 你还在等什么! 抓紧扫码参与活动吧! 青小云还为大家准备了一份详情攻略 赶快来 get 一下吧! 超值优惠,惊喜连连 心动不如行动

【万分曲折的开头】利用python爬爬我的微信好友列表

自闭症网瘾萝莉.ら 提交于 2020-04-28 19:31:15
在家呆的太焦虑了,总要做点什么学点什么才能缓解这种焦虑。 想起来去年有师兄在朋友圈晒过 使用 Python 的 itchat 模块爬取微信好友信息 那就直接动手吧! 首先安装itchat库,傻瓜式一键pip install itchat 一上来就遇到好多问题 问题一 原因是我的文件名作死取了itchat.py,难怪了。 所以取名还是要按规定来,否则自找问题。 问题二 "为了你的帐号安全,此微信号不能登录网页微信" 腾讯已经不允许网页版微信登录了,真的是头疼。在我以为我的技术热情即将被浇灭的时候,终于找到了一个解决办法。 为了你的账户安全,此WeChat ID 不能登入Wechat网页版。你可以....... 问题三 利用QQ浏览器的微信插件可以登录微信网页版,但是程序请求打开微信的时候还是出现无法打开的问题 首先排查一下是不是因为默认打开的浏览器不对(照理跟随系统默认QQ浏览器应该没什么问题) 强制设成QQ浏览器 好吧,还是不行,只能放弃itchat了。继续搜索解决办法…… 总之,功夫不负有心人,办法总比问题多 基于hook的python机器人,彻底取代itchat 但是这个功能不齐全,还在持续填坑中,我继续观望。 折腾了一个半小时,头还没能开起来。 所有,不懂就问,还有什么其他的解决方式么? 来源: oschina 链接: https://my.oschina.net/u

微信小程序学习-全局配置

大兔子大兔子 提交于 2020-04-28 18:48:21
全局配置 1.app.js 定义全局数据和全局函数 定义内容解释: onLanuch 当小程序初始化完成时,会触发 onLaunch(全局只触发一次) onShow 当小程序启动,或从后台进入前台显示,会触发 onShow onHide 当小程序从前台进入后台,会触发 onHide onError 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息 globalData 全局数据,用来存放一些全局的东西,比如统一的远程接口地址等,当然在使用中发现,也可以自定义数据,也能访问到 数据的访问:   使用getApp()访问,在需要访问的页面的js中加上 var app=getAPP(),就可以app.XX来访问数据,app.xxx()访问函数 举例: // app.js App({ cookie: {}, onLaunch: function () { }, globalData: { userInfo: null , version: "1.0" , shopName: "商店" , // sdomain:"http://192.168.0.119:8999/api", domain:"https://xx/api" , static_domain: "https://xx.cn/static/images/mina" , }, tip:

从入门到放弃的 Java 架构师面试题!

跟風遠走 提交于 2020-04-28 15:26:52
经常面试一些候选人,整理了下我面试使用的题目,陆陆续续整理出来的题目很多,所以每次会抽一部分来问。答案会在后面的文章中逐渐发布出来。 基础题目 Java线程的状态 进程和线程的区别,进程间如何通讯,线程间如何通讯 HashMap的数据结构是什么?如何实现的。和HashTable,ConcurrentHashMap的区别 Cookie和Session的区别 索引有什么用?如何建索引? ArrayList是如何实现的,ArrayList和LinkedList的区别?ArrayList如何实现扩容。 equals方法实现 面向对象 线程状态,BLOCKED和WAITING有什么区别 JVM如何加载字节码文件 JVM GC,GC算法。 什么情况会出现Full GC,什么情况会出现yong GC。 JVM内存模型 Java运行时数据区 事务的实现原理 技术深度 有没有看过JDK源码,看过的类实现原理是什么。 HTTP协议 TCP协议 一致性Hash算法 JVM如何加载字节码文件 类加载器如何卸载字节码 IO和NIO的区别,NIO优点 Java线程池的实现原理,keepAliveTime等参数的作用。 HTTP连接池实现原理 数据库连接池实现原理 数据库的实现原理 技术框架 看过哪些开源框架的源码 为什么要用Redis,Redis有哪些优缺点?Redis如何实现扩容?