首页 文章 精选 留言 我的

精选列表

搜索[稳定],共10005篇文章
优秀的个人博客,低调大师

Snowy V2.1.2 已发布,还是优化,更稳定

Snowy 是国内首个采用了国密算法的前后分离快速开发平台,技术采用了 Vue3+AntDesignVue3+Vite2+SpringBoot+Hutool+Mp+SaToken+EasyTrans ,发布以来一直维护着客户的使用,不断的更新,更新频率也是越来越快,此次发版V2.1.2主要更新了以下内容: 1、【更新】修复阿里云上传文件地址返回错误,修复文件key构造错误 2、【更新】更新前端依赖,固定出错误的版本 3、【更新】接受一个PR -junit 单词拼写错误,感谢《微笑》 4、【更新】代码生成的sql注释规范 5、【更新】删除不需要提交的auto-imports.d.ts 6、【更新】更新gitignore 7、【更新】修复代码生成BigDecimal未导入包的bug 8、【更新】去掉代码生成的菜单自动加上的管理二字 9、【更新】修复SysRolePageParam字段注释错误 10、【更新】修复SysRoleServiceImpl方法注释错别字 11、【更新】接受一个iss中建议,Delete ␍eslint,感谢《少林寺驻武当山办事处大神父王喇嘛》的issues建议 12、【更新】修复业务模块获取机构树构造结果为空的bug 13、【更新】去掉角色管理功能界面上面增加的合并行 14、【更新】更新编辑器因为自身升级导致的错误 快来看你提的 Iss 有没有被更新! 下一步计划还是做优化,新功能暂时往后排期哦!

优秀的个人博客,低调大师

nginx 1.22.1 稳定版和 1.23.2 主线版发布

nginx 发布了两个新版本,分别是 stable 分支的 1.22.1 和 mainline 分支的 1.23.2,更新内容主要是修复安全问题。 nginx 1.22.1 安全修复:使用 ngx_http_mp4_module 模块处理特制的 mp4 文件时,可能会导致 worker 进程崩溃、worker 进程内存泄漏和损坏,也可能产生潜在的其他影响 (CVE-2022-41741, CVE-2022-41742) nginx 1.23.2 安全修复:使用 ngx_http_mp4_module 模块处理特制的 mp4 文件时,可能会导致 worker 进程崩溃、worker 进程内存泄漏和损坏,也可能产生潜在的其他影响 (CVE-2022-41741, CVE-2022-41742) 新特性:引入"$proxy_protocol_tlv_..."变量 新特性:当在"ssl_session_cache"指令中使用共享内存时,TLS 会话凭据加密密钥会自动切换 变化:"bad record type" SSL 错误的日志级别从"crit"降低到"info" 变化:当在"ssl_session_cache"指令中使用共享内存时,“无法分配新会话”的错误被记录在"warn"级别,而不是此前的"alert",并且不超过每秒钟一次。 Bugfix:修复 nginx/Windows 无法使用 OpenSSL 3.0.x 构建的问题 Bugfix:修复 PROXY 协议的日志错误 Workaround:当使用搭载 OpenSSL 的 TLSv1.3 时,来自"ssl_session_cache"指令的共享内存被用在使用 TLS 会话凭据的会话上 Workaround:当使用搭载 OpenSSL 或 BoringSSL 的 TLSv1.3 时,使用"ssl_session_timeout"指令指定的超时不起作用 下载地址

优秀的个人博客,低调大师

Chrome 97 正式发布,今年首个稳定版

Chrome 97 已于今天正式发布,这个版本带来了更好的删除存储网站数据的工具、更一致的 Web 应用,以及移动版浏览器更精细的缩放控制,当然也带来了具有争议的键盘映射 API。 删除一个网站存储的所有数据 Chrome 97 对隐私和安全设置做了一些改变。你现在可以删除一个网站存储的所有数据。此前,你只能选择删除所有网站数据或删除个别的 cookies。这个新的设置可以在「设置」>「安全和隐私」>「网站设置」>「查看权限和跨网站存储的数据」中找到。 Web 应用更像本地应用 之前(顶部)/之后(底部) 此前让 Web 应用程序看起来不像本地应用的一个区域是顶部的应用栏。Chrome 97 允许 Web 应用程序利用这一空间,用于放置搜索栏、导航按钮和颜色等元素。 记住每个网站在移动端的缩放设置 桌面端的 Chrome 浏览器已经能够记住你对特定网站的缩放设置,Chrome 会在每次访问该网站时保持这一设置。如今在 Chrome 97 中加入了一个功能标志,可以在移动端做到这一点。 该功能可以在 chrome:flags#enable-accessibility-page-zoom 中找到。一旦启用,你可以通过点击地址栏中的锁定图标来调整缩放。下次访问这个网站时,Chrome 会记住这个设置。 为 CSS 提供更好的 HDR 支持 Google 在 Chrome 94 开始测试一项 CSS 功能,以检测设备屏幕是否支持 HDR 内容。该功能现在已经在 Chrome 97 中上线。这使网页开发人员能够基于用户的显示设备来决定是否启用 HDR 内容,而此前只能全开或全不开,从而影响用户体验。 其他功能 Keyboard Map API:Chrome 97 有一个新的 Keyboard Map API,有助于识别不同键盘布局下的按键(可查看综合新闻解释)。 更多详情可查看:https://chromestatus.com/roadmap

优秀的个人博客,低调大师

Kitex v0.1.3 发布,新功能更加稳定可靠

Kitex 是一个Golang 微服务 RPC 框架,具有高性能、强可扩展的特点,在字节内部已广泛使用。如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望定制扩展融入自己的治理体系,Kitex 会是一个不错的选择。 Kitex v0.1.3 版本已经发布,此版本更新内容包括: 功能优化 JSON 泛化调用场景,向服务端传递 Base 信息,从而服务端可获取 Caller 等信息 Bugfix 修复 streaming 的 metric 上报(server侧)丢失 method 信息的问题 修复 JSON 和 HTTP 泛化中 base64 和 binary 的不兼容改动 修复 gRPC 流控相关的问题,该问题会导致 client 侧出现持续超时 CI 增加场景测试 Chore 更新了ROADMAP

优秀的个人博客,低调大师

进击谷歌:多线程下程序顺序怎么稳定不乱?

题目 比如我们有三个方法,类似以下代码 static void Methond1() { Console.WriteLine($"{Thread.CurrentThread.Name} 执行 第一个方法=="); } static void Methond2() { Console.WriteLine($"{Thread.CurrentThread.Name} 执行 第二个方法======="); } static void Methond3() { Console.WriteLine($"{Thread.CurrentThread.Name} 执行 第三个方法======="); } } 分别初始化三个线程去执行这三个方法,每个线程执行的方法可以任意指定,但是方法的执行顺序必须是:Methond1=》Methond2=》Methond3 示例: 输入:3,2,1 第一个线程执行方法3,第二个线程执行方法2,第三个线程执行方法1 输出:Methond1的输出=》Methond2的输出=》Methond3 的输出 ,即: xxx执行 第一个方法== xxx执行 第二个方法== xxx执行 第三个方法== 题解分析 这道题本质上考的是多线程环境资源竞争的问题,在多线程环境下要想以固定某个顺序执行方法,必须要有一个类似屏障的东西来阻止不该执行的线程,或者换句话说必须要有一个机制来顺序化多个线程。这也是我们平时多线程开发环境中必须要面对的问题,现代服务器的cpu都是多核心,我们平时用的最多的java,c#等高级语言是能够利用服务器多核心这个优势的,这里是一个进程内,多线程就可以利用多核心。当然也有一些别的技术,比如Nodejs,虽然执行是单线程的,但是可以利用多进程来提高多物理cpu的利用率。 说的有点远了,接下来还是看这道题,这道题目考验的是多线程下资源的竞争问题和线程间的通信问题,说的直白一点就是:Methond1未执行之前,任何方法都不能执行(这里是指方法内的代码),Methond1执行完之后,会通知执行Methond2的线程,Methond2开始执行,Methond2执行完毕会通知执行Methond3的线程,以此类推。所以这道题的关键在于阻塞某个线程执行和通知某个线程执行。 在很多语言中都提供了lock的机制,或者信号量的机制。这些都是可以实现线程间通信的的解决方案,当然最简单暴力的方式还是通过共享变量的方式来实现通知,虽然有很多缺陷,但是在很多情况下确实是最简单快捷的方案。下边就以c#语言为例: class Program { //把三个方法分别对应到 委托,为了方便执行方法 static Action FirstAction = Methond1; static Action SecondAction = Methond2; static Action ThirdAction = Methond3; static Dictionary<int, Action> ActionDic = new Dictionary<int, Action>() { { 1, FirstAction }, { 2, SecondAction }, { 3, ThirdAction } }; static void Main(string[] args) { while (true) { Console.WriteLine("请输入顺序"); var inputStr = Console.ReadLine(); IsFinish1 = IsFinish2 = false; var input = inputStr.Split(",").Select(s => int.Parse(s)); foreach (var i in input) { var method = ActionDic.GetValueOrDefault(i); Thread t = new Thread(method.Invoke); t.Name = "线程" + i; Console.WriteLine($"{t.Name} 执行方法 {method.Method.Name}"); t.Start(); } } } static object objLock = new object(); static bool IsFinish1 = false; //第一方法是否执行完毕 static bool IsFinish2 = false; //第二方法是否执行完毕 static void Methond1() { Console.WriteLine($"{Thread.CurrentThread.Name} 执行 第一个方法=="); IsFinish1 = true; } static void Methond2() { while (true) { if (IsFinish1) { Console.WriteLine($"{Thread.CurrentThread.Name} 执行 第二个方法======="); IsFinish2 = true; break; } } } static void Methond3() { while (true) { if (IsFinish2) { Console.WriteLine($"{Thread.CurrentThread.Name} 执行 第三个方法======="); break; } } } } 测试执行: 请输入顺序 2,3,1 线程2 执行方法 Methond2 线程3 执行方法 Methond3 线程1 执行方法 Methond1 请输入顺序 线程1 执行 第一个方法== 线程2 执行 第二个方法======= 线程3 执行 第三个方法======= 3,2,1 线程3 执行方法 Methond3 线程2 执行方法 Methond2 线程1 执行方法 Methond1 请输入顺序 线程1 执行 第一个方法== 线程2 执行 第二个方法======= 线程3 执行 第三个方法======= 不要太纠结以上的代码,以上只是作为抛砖引玉的作用,就算是有执行错误,思路我觉得还是没有问题的,当然确实有很多要优化的地方,比如等待执行的线程一直在耗费cpu资源的情况,可以替换为自旋锁或者混合锁,有兴趣的同学可以进行优化一番。 另辟蹊径 但是,作为语法很优秀的c#怎么能就此止步呢?c#本身提供了Task的机制,可以把它看做是类似golang的协程(虽然不是很像)。基于task的机制我们很容易就完成,task的 ContinueWith机制就是为此而生的,它可以很方便的把多个并行的task串行化,有兴趣的同学可以试一下,但是我要说的并非ContinueWith。既然要执行的顺序化,如果我把执行的代码放在有顺序的容器中,然后按照顺序去执行,岂不快哉?不多废话: class TaskTest { static Func<Task> FirstAction = Methond1; static Func<Task> SecondAction = Methond2; static Func<Task> ThirdAction = Methond3; static Dictionary<int, Func<Task>> ActionDic = new Dictionary<int, Func<Task>>() { { 1, FirstAction }, { 2, SecondAction }, { 3, ThirdAction } }; static Func<Task>[] tList = new Func<Task>[3]; public static void Start() { while (true) { Console.WriteLine("请输入顺序"); var inputStr = Console.ReadLine(); var input = inputStr.Split(",").Select(s => int.Parse(s)); foreach (var i in input) { var method = ActionDic.GetValueOrDefault(i); tList[i-1] = method; } foreach (var t in tList) { t.Invoke().Wait(); } } } static Task Methond1() { return Task.Run(()=> { Console.WriteLine($"{Thread.CurrentThread.Name} 执行 第一个方法=="); }); } static Task Methond2() { return Task.Run(() => { Console.WriteLine($"{Thread.CurrentThread.Name} 执行 第二个方法======="); }); } static Task Methond3() { return Task.Run(() => { Console.WriteLine($"{Thread.CurrentThread.Name} 执行 第三个方法======="); }); } } 测试: 请输入顺序 2,3,1 执行 第一个方法== 执行 第二个方法======= 执行 第三个方法======= 请输入顺序 3,2,1 执行 第一个方法== 执行 第二个方法======= 执行 第三个方法======= 请输入顺序 1,3,2 执行 第一个方法== 执行 第二个方法======= 执行 第三个方法======= 请输入顺序 是不是很爽,毫不犹豫的说c#是一门很优秀的语言,在并发方面做的很优秀。以上Task的代码并非是最优代码,比如 可以用Await来代替 wait(),这样的话在真实环境中可以释放当前线程来提高吞吐量,记住:await方式提高的吞吐量,并非缩短了单次请求的执行时间。 更多精彩文章 分布式大并发系列 架构设计系列 趣学算法和数据结构系列 设计模式系列

优秀的个人博客,低调大师

Kube-OVN v0.9.1 稳定性提升

该版本主要修复0.9.0 版本中反馈的问题,代码会维护两个分支,release分支主要是 bugfix,发布周期会稍微频繁一些,master上会有bugfix和新的功能,想试验新功能可以用 master分支。 问题修复 1. 当子网所有 IP 都被分配,再次分配 IP 会导致 panic 2. kube-ovn-cniserver 挂载 /var/run/netns 目录,避免 kind 集群出现的目录问题 3. 正确处理 svc 中 targetPort 为字符串的情况 4. start-ovs.sh 脚本中的错误 5. 删除节点时回收 ip/route 等资源 6. nbctl 增加超时控制,避免无限阻塞的情况 7. 当子网中还有 IP 使用时,阻塞子网删除操作

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册