Python3
浅谈Python多线程
我认为Python语言并不是真正意义上的编程语言级别多线程,Python的多线程是在操作系统级别上实现的,因为Python标准库中的threading模块使用了操作系统的原生线程,它可以创建多个线程(一个主线程+多个副线程)并行执行任务,但由于 Python 全局解释器锁(GIL)的存在,在多核 CPU 上它的多线程在任何时刻只有一个线程能够执行 Python 字节码。这就意味着 Python 多线程在 CPU 密集型任务上并不能实现性能的提升,但对于 I/O 密集型任务(如网络请求、文件操作等),多线程依然是有效的。
当然可以使用 multiprocessing 模块,该模块支持在多个进程之间并发执行任务,每个进程都有自己独立的内存空间,从而避免了全局解释器锁(GIL)的限制,并能够充分利用多核 CPU。参考:YouTube-码农高天:【python】听说Python的多线程是假的?它真的没有存在的价值么?
IO密集型任务1234567891011121314151617181920212223242526272829303132333435363 ...
Java基础
Java的逻辑运算符
以下规则同样也适用于linux命令的执行
运算符
范例
描述
逻辑与 (en-US) (&&)
expr1 && expr2
(逻辑与) 如果 expr1 能被转换为 false,那么返回 expr1;否则,返回expr2。因此,&&用于布尔值时,当操作数都为 true 时返回 true;否则返回 false.
逻辑或 (en-US) (`
`)
逻辑非 (en-US) (!)
!expr
(逻辑非) 如果操作数能够转换为 true 则返回 false;否则返回 true。
按位运算符(单个符号)
不管前后是什么条件,前后都执行
&只要有一个false结果false
|只要有一个true结果true
int a = 5; // 二进制表示为 00000101
int b = 3; // 二进制表示为 00000011
int result = a & b; // 二进制按位与运算,结果为 00000001,即 1
System.out.pri ...
MySQL
技巧客户端工具mycli
使用好多年MySQL其实最重要的还是客户端工具,图形化不是王者,使用命令行才是王者。此工具就是MySQL客户端工具的王者,默认支持SQL自动补全,还很轻便。
参考:
mycli | MySQL 技术论坛
连接MySQL1mycli -u <用户名> -h <主机> -P <端口号>
用户管理重置密码(忘记密码)
以下操作在Arch Linux 环境,数据库为10.5.9-MariaDB,经过2小时的搜索资料和实践,才有以下总结
首先,我们停掉MariaDB服务:
1systemctl stop mariadb.service #停止MariaDB
以安全模式启动MySQL:
1sudo mysqld_safe --skip-grant-tables --skip-networking & #--skip-networking;避免远程无密码登录 MariaDB,后面的&的作用是启动安全模式后能继续编辑命令窗口
这样我们就可以直接用root登录,无需密码:
1mysql -u ro ...
Arch Linux
安装Arch Linux快捷键图形化快捷键
快捷键
作用
详解
Ctrl+Alt+T
打开终端
Ctrl+D
关闭终端
退出python也可以
命令行快捷键
快捷键
作用
详解
Ctrl+R
搜索历史命令
在此命令行的下方出现搜索结果,按右键确认结果
Ctrl+L
清屏
相当于clear命令
GRUB
更换内核等操作。
更新Grub配置
1sudo grub-mkconfig -o /boot/grub/grub.cfg #一般情况下Grub配置文件都是放置/boot/grub/grub.cfg目录
根据速度排序源
升级系统排名Mirror List是很必要的。获取最新Mirror List 并使用 rankmirrors 进行镜像源速度排名,使软件更新的速度飞起~
如果Arch源文件不全,请到Arch Linux WIKI:Pacman Mirrorlist Generator查找。
软件包:pacman-contrib
参考:
Arch Linux WIKI:Mirrors
Arch Linux WIKI:Pacman Mir ...
Spring
了解Spring框架什么是Spring
Spring是分层的JavaSE/EE full-stack 轻量级开源框架,以IoC(Inverse of Control 控制反转)和AOP(Aspect Oriented Programming 面向切面编程)为内核,使用基本的JavaBean来完成以前只可能由EJB完成的工作,取代了EJB的臃肿、低效的开发模式。
在实际开发中,通常服务器端在采用三层体系架构,分别为表示层(Web)、业务逻辑层(Service)、持久层(Dao), Spring对每一层都提供了技术支持。
表示层:在表示层提供了与Struts等框架的整合
业务逻辑层:在业务逻辑层可以管理事务、记录日志等
持久层(Dao即DataAccessobjects 数据存取对象):在持久层可以整合Hibernate、JdbcTemplate等技术
Spring具有简单、可测试和松耦合等特点。Spring不仅可以用于服务器端开发,也可以应用于任何Java应用的开发中,以下是它的7大优点:
非侵入式设计
方便解耦、简化开发
支持AOP(Aspect Oriented P ...
Kali Liunx
熟悉环境(任务004)grep
1grep root /etc/passwd #搜索显示passwd文件中所包含root单词的一行
macchanger修改Mac地址
改变mac地址的工具,改变之前必须donw掉所修改的网卡,其他Linux系统需要单独安装
Down掉网卡:
12sudo ifconfig enp3s0f3u3u1 down #卸载网卡sudo ifconfig enp3s0f3u3u1 up #启用网卡
修改Mac地址:
1macchanger -m 00:11:11:11:11:11 enp3s0f3u3u1 #修改网卡 enp3s0f3u3u1的mac地址为00:11:11:11:11:11,重启后会变回之前的Mac地址
查看我的主机于外部IP有那些TCP/UDP建立的连接1netstat -pantu #后面的tu代表TCP与UDP的连接全部都显示
修改Linux DNS服务器的文件位置/etc/resolv.conf
查找网络中与自己主机建立连接的IP地址:
12netst ...
Android
推荐学习网站
安卓开发者平台:https://developer.android.com/安卓开发者社区:https://android-developers.googleblog.com/
安卓的四大组件
安卓的四大组件,Activity、Service、BroadcastReceiver、ContentProvider提供应用之间的访问接口(很少自定义,主要系统提供)
Activity
相当于Swing编程中的JFrame控件,与其不同的是JFrame本身可以设置布局管理器,不断地向其添加组件,而Activity只能通过setContentView(View)来显示布局文件中已经定义的组件。Activity就像一个界面管理员,用户在界面上的操作是通过Activity来管理的。
生命周期
onCreate(Bundle savedInstanceState):该方法在Activity的实例被Android系统创建后第一个被调用。通常在该方法中设置显示屏幕的布局、初始化数据、设置控件被点击的事件响应代码。
onRestart():回到最上边的界面,再次可见时执行(可见)。
onS ...
Wine配置
简述:Wine是(Wine Is Not an Emulator)的缩写,是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,Mac OSX 及 BSD 等)上运行 Windows 应用的兼容层,Wine不是模拟Windows的工具,而是运用API转换技术实做出Linux对应到Windows相对应的函数来调用DLL(动态链接库)以运行Windows程序Crossover是Wine的商业版本,比Wine使用更为方便,不用手动配置,直接一键安装到Linux等系统,但收费
如果是ArchLinux请看ArchLinux Wine教程,比如字体配置。
Wine版本分类官方共分为三类(稳定依次下降,新功能更新依次上升)
-stable (稳定版)
-staging (介于上下两版本之间的)
-devel (开发版)
非官方(对于官方版本进行改进)
deepin-wine,又换对国内软件的兼容
-tkg(针对Arch系统级别)
-ge
当然Wine的非官方版本tkg、ge感觉主要作用用来在Linux上玩Windows游戏,比如Steam的大型游戏。
安装Win ...
Hexo教程
来源Hexo官方教材:https://hexo.io/zh-cn/docs/本教程经过博主的精心实验总结而来,比较官网的教材更易于读懂易于操作以下操作过程均是在ArchLinux系统中进行,Windows操作系统也可以
安装Hexo普通安装(全局安装 推荐)
推荐使用全局安装方式,省去维护成本该命令会在/usr/lib/node_modules目录(Nodejs组件安装目录)
1npm install -g hexo-cli
进阶安装(局部安装)对于熟悉npm的用户, 可以仅局部安装hexo包。
首先创建一个目录,在这个目录中执行:
12npm install hexo #局部安装(不推荐)npm install -g hexo-cli #全局安装(推荐使用)
安装以后,可以使用以下两种方式执行 Hexo:
局部安装Hexo文件夹直接移动到/usr/lib/node_modules目录下操作:
1npx hexo <command>
添加环境变量到.xprofile后操作:
1hexo <command> ...