next

MyEclipse2019中文版

被刻印的时光 ゝ 提交于 2020-10-02 20:42:23
安装教程 1、解压文件包后双击打开“myeclipse-ci-2019.4.0-offline-installer-windows.exe” 2、等待准备安装程序 3、点击“Next” 4、勾选同意条款,然后点击“Next” 5、选择软件要安装的目录,一定要是英文目录,然后点击“Next” 6、等待安装中 7、安装完成,先不要打开MyEclipse2019,点击“Finish”资源地址: MyEclipse2019中文版 教程 1、在“myeclipse2019_keygen”中找到“crack.bat”右键管理员模式打开 2、输入Usercode: 任意字母或者数字,选择Blue,点击SystemId(点两次才会生成), 3、点击Active 4、点击菜单栏->Tools->2.saveProperties 5、用patch文件夹下的文件覆盖本软件安装目录下的 plugins 6、重启该软件即可 来源: oschina 链接: https://my.oschina.net/u/4254929/blog/4292704

Java集合——HashMap扩容的死锁问题

我的梦境 提交于 2020-10-02 20:06:43
Java集合——HashMap扩容的死锁问题 摘要:本文主要了解了HashMap在多线程并发情况下扩容产生的死锁问题。 死锁问题 在JDK的1.7版本进行扩容时,因为是头插法插入节点,并且在一个线程扩容后会替换掉之前的数组,所以在多线程环境下可能会产生死锁。 1 // 扩容。 2 void resize( int newCapacity) { 3 // 判断是否需要扩容。 4 Entry[] oldTable = table; 5 int oldCapacity = oldTable.length; 6 if (oldCapacity == MAXIMUM_CAPACITY) { 7 threshold = Integer.MAX_VALUE; 8 return ; 9 } 10 // 创建扩容后的新数组,并且在扩容后替换老数组。 11 Entry[] newTable = new Entry[newCapacity]; 12 transfer(newTable, initHashSeedAsNeeded(newCapacity)); 13 table = newTable; 14 threshold = ( int )Math.min(newCapacity * loadFactor, MAXIMUM_CAPACITY + 1 ); 15 } 16 17 // 扩容。 18

tcp socket的发送与接收缓冲区

久未见 提交于 2020-10-02 14:20:03
1) 应用程序可通过调用send(write, sendmsg等)利用tcp socket向网络发送应用数据,而tcp/ip协议栈再通过网络设备接口把已经组织成struct sk_buff的应用数据(tcp数据报)真正发送到网络上,由于应用程序调用send的速度跟网络介质发送数据的速度存在差异, 所以,一部分应用数据被组织成tcp数据报之后,会缓存在tcp socket的发送缓存队列中,等待网络空闲时再发送出去。同时,tcp协议要求对端在收到tcp数据报后,要对其序号进行ACK,只有当收到一个tcp 数据报的ACK之后,才可以把这个tcp数据报(以一个struct sk_buff的形式存在)从socket的发送缓冲队列中清除 。 tcp socket的发送缓冲区实际上是一个结构体struct sk_buff的队列,我们可以把它称为发送缓冲队列,由结构体struct sock的成员sk_write_queue表示。sk_write_queue是一个结构体struct sk_buff_head类型,这是一个struct sk_buff的双向链表,其定义如下: struct sk_buff_head { struct sk_buff *next; //后指针 struct sk_buff *prev; //前指针 __u32 qlen; //队列长度(即含有几个struct sk

Python Kafka 报错:ImportError: cannot import name 'KafkaConsumer'

笑着哭i 提交于 2020-10-02 12:51:54
在Django的项目中安装了 kafka-python ,但是不能正常运行,直接就报错了。 import sys from kafka import KafkaConsumer def kafkatest(): print "Step 1 complete" consumer=KafkaConsumer('test',bootstrap_servers=['localhost:9092']) for message in consumer: print "Next message" print message if __name__=="__main__": kafkatest() 然后在使用时,报错提示: ImportError: cannot import name 'KafkaConsumer' 找了半天没有找到解决方案,最后发现自己创建的文件名叫做: kafka.py ,突然意识到问题出在哪里了。 原因: 简单说就是因为,创建的文件名是 kafka.py ,这会导致代码运行时,python解释器查找kafka的模块时,就找到自身(kafka.py)了,所以就报错。 解决办法: 修改文件名字为其他名字,比如: com_kafka.py ,在运行就可以运行了。 本文首发于 BigYoung小站 来源: oschina 链接: https://my.oschina.net/u

干货!高频手撕算法合集来了

谁说胖子不能爱 提交于 2020-10-02 12:17:59
作者 | L的存在 来源 | 我是程序员小贱(ID:Lanj1995Q) 基础数据结构的融合是成为庞大系统的基石。比如Redis中的跳跃表,数据库索引B+树等,只有对基础的数据结构足够的熟悉才能更容易去理解稍微复杂的结构,就仿佛我们闯关打怪一样,一步一步解锁直到结局。今天想和大家一起分享的是常见数据结构以及面试中的高频手撕算法题,一定要去手动写这些代码,可说百分之七八十都是这些题,一定要好好掌握。 高频手撕算法合集 数据结构 链表属于数据结构中的线性结构的一种,我们先看看什么是数据结构 数据结构是:结构的定义+结构的操作 想必大伙儿应该玩儿过拼图,拼图之前我们先看看说明书,看看包含几个部分,然后对这些部分进行拼装,随后拼好候进行组合直到完成。 那么数据结构中的结构定义是这个数据结构长什么样子,有些什么性质?结构的操作意思是这个结构可以支持什么操作,但是不管你怎么的操作,不能破坏了它的结构。 链表定义 一个链表是由1个或者多个节点组成,每个节点包含两个信息,一个是数据信息,用来存储数据,一个是地址信息,用来存储下个节点的地址。 链表节点 链表结构由一个个节点组成,我们不需要对结构做任何改变,只需要按照需求修改链表结构中的数据域即可。从上图我们知道此事数据域类型为整型763,指针域为0x56432,这个地址正好是第二个节点的地址,所以这两个节点在逻辑上是有个指向关系

HashSet扩容机制在时间和空间上的浪费,远大于你的想象

六眼飞鱼酱① 提交于 2020-10-02 12:07:33
一:背景 1. 讲故事 自从这个纯内存项目进了大客户之后,搞得我现在对内存和CPU特别敏感,跑一点数据内存几个G的上下,特别没有安全感,总想用windbg抓几个dump看看到底是哪一块导致的,是我的代码还是同事的代码? 很多看过我博客的老朋友总是留言让我出一套windbg的系列或者视频,我也不会呀,没办法,人在江湖飘,迟早得挨上几刀,逼着也得会几个花架子😄😄😄,废话不多说,这一篇就来看看 HashSet 是如何扩容的。 二:HashSet的扩容机制 1. 如何查看 了解如何扩容,最好的办法就是翻看HashSet底层源码,最粗暴的入口点就是 HashSet.Add 方法。 从图中可以看到最后的初始化是用 Initialize 的,而且里面有这么一句神奇的代码: int prime = HashHelpers.GetPrime(capacity); ,从字面意思看是获取一个质数,哈哈,有点意思,什么叫质数? 简单说就是只能被 1 和 自身 整除的数就叫做质数,那好奇心就来了,一起看看质数是怎么算的吧! 再次截图。 从图中看,HashSet底层为了加速默认定义好了 72 个质数,最大的一个质数是 719w ,换句话就是说当元素个数大于 719w 的时候,就只能使用 IsPrime 方法动态计算质数,如下代码: public static bool IsPrime(int

Qt下Sqlite数据库操作

泄露秘密 提交于 2020-10-02 10:35:38
Sqlite数据库作为Qt项目开发中经常使用的一个轻量级的数据库,可以说是兼容性相对比较好的数据库之一(Sqlite就像Qt的亲儿子,如同微软兼容Access数据库一样)。关于Sqlite和Qt的千丝万缕的故事,有机会再说(各位看官查一查也可以自己search一下)。这里简单说说Sqlite数据库的用法吧。 一、sql语句和部分接口函数 1、在.pro文件中记得增加 : QT += core gui sql 2、sqlite数据库的增删查改【接口函数参见代码】 #ifndef SQLITEDBAOPERATOR_H #define SQLITEDBAOPERATOR_H #include"generalheaders.h" #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlQueryModel> #include <QDebug> #include <QSqlError> class SqliteDBAOperator { public: SqliteDBAOperator(); ~SqliteDBAOperator(); public: //创建数据库并建立连接 bool OpenDb(void); //创建数据表(student) void createTable(void); //在表格中增加新的字段

FastAPI 工程管理(四) 工程示例

倾然丶 夕夏残阳落幕 提交于 2020-10-02 09:04:49
作者:麦克煎蛋 出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢! 结合前期学习的过程,整理了一份工程实例模板,在基于FastAPI框架的前提下,参考了Flask的一些业务逻辑和文件配置。 在测试环境和生产环境都经过了实际测试,个人认为可以实际应用于正式环境了。 代码地址: https://github.com/zhiyongma/fastproject 工程目录结构 ├── app │ ├── auth # JWT Authorization │ ├── models # database models │ ├── routers # api routers │ └── util # utility │ ├── __init__ .py # entry file │ ├── config.py # project config │ ├── database.py # database ├── deploy # deploy tools │ ├── gunicorn_fast.service # service sample │ ├── test_user.sql # user db sample ├── gunicorn.py # gunicorn config ├── local.py # for development

癌症、帕金森、渐冻症一网打尽?投资人亲自操刀创全球首家“无膜细胞器”公司,欲拓展药物研发新途径

徘徊边缘 提交于 2020-10-02 08:09:20
  9 月 29 日,专注于研究相分离生物技术的初创公司 Dewpoint Therapeutics(以下简称 “Dewpoint”) 宣布完成 7700 万美元 B 轮融资。本轮融资由 ARCH Venture Partners 领投,新加入的投资方还包括 Maverick Ventures、Bellco Capital,已有投资方美国北极星创投(Polaris Partners)、拜耳飞跃、EcoR1 Capital、Samsara BioCapital 和 Innovation Endeavors 也继续追加投资。   图 | Dewpoint Therapeutics logo   (来源:Dewpoint Therapeutics 官网)    “Dewpoint 的诞生展现了一种全新的运作公司的方式”   美国生物制药行业知名媒体 Endpoints News 创始人约翰 · 卡罗尔(John Carroll)在文章中这样形容 Dewpoint: 它的故事展现了一种全新的运作公司的方式。   2019 年 1 月 30 日,Dewpoint 以宣布获得 6000 万美元 A 轮融资的方式正式出现在大众视野中。这家成立即融资千万美元的公司是北极星创投执行合伙人阿米尔 · 纳沙特(Amir Nashat)的“新作品”。纳沙特在北极星创投已任职 16 年

太刺激了,面试官让我手写跳表,而我用两种实现方式吊打了TA!

隐身守侯 提交于 2020-10-02 07:22:57
前言 本文收录于专辑: http://dwz.win/HjK ,点击解锁更多数据结构与算法的知识。 你好,我是彤哥。 上一节,我们一起学习了关于跳表的理论知识,相信通过上一节的学习,你一定可以给面试官完完整整地讲清楚跳表的来龙去脉,甚至能够边讲边画图。 然而,面试官说,既然你这么精通跳表,不如实现一个呗^^ 我,我,实现就实现,谁怕谁,哼~~ 本节,我将通过两种方式手写跳表,并结合画图,彻底搞定跳表实现的细节。 第一种方式为跳表的通用实现,第二种方式为彤哥自己发明的实现,并运用到HashMap的改写中。 好了,开始今天的学习吧,Let's Go! 文末有跳表和红黑树实现的HashMap的对比,不想看代码的同学也可以直达底部。 通用实现 通用实现主要参考JDK中的ConcurrentSkipListMap,在其基础上,简化,并优化一些东西,学好通用实现也有助于理解JDK中的ConcurrentSkipListMap的源码。 数据结构 首先,我们要定义好实现跳表的数据结构,在通用实现中,将跳表的数据结构分成三种: 普通节点,处于0层的节点,存储数据,典型的单链表结构,包括h0 索引节点,包含着对普通节点的引用,同时增加向右、向下的指针 头索引节点,继承自索引节点,同时,增加所在的层级 类图大概是这样: OK,给出代码如下: /** * 头节点:标记层 * @param <T> */