首页 文章 精选 留言 我的

精选列表

搜索[系统工具],共10000篇文章
优秀的个人博客,低调大师

ILSpy 5.0 发布,.NET 反编译工具

ILSpy 5.0发布,该版本更新内容如下: 新特征 新的 BAML反编译器 MSIX for Microsoft Store:@onovotny 添加了构建支持 如果方法标识为 Windows Forms InitializeComponent,则生成 VS Windows Forms Designer兼容性代码 添加新选项RemoveDeadStores和 AlwaysShowEnumMemberValues 反编译引擎的改进与修复 改进了无效元数据标记上反编译器和反汇编程序的稳定性 添加对 ReadOnlySpan<T> 初始化模式的支持 改进ref readonly授权和返回类型的编译 改进 LINQ 查询的反编译 PDB 生成器现在可以发出异步的“method stepping information” 改进UI 支持treeview 和搜索中的模糊名称 使反编译代码的缩进可配置 如果无法分析实体而导致崩溃,则显示错误消息 添加匹配括号高亮显示 改进了反编译视图中的链接 更多改进见发布说明: https://github.com/icsharpcode/ILSpy/releases/tag/v5.0

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

并发编程工具之一:CountDownLatch 用法

CountDownLatch 用法CountDownLatch是java.util.concurrent包中一个类,CountDownLatch只要提供的机制是多个(具体数量等于初始化CountDownLatch时count的值)线程都达到了预期状态或者完成了预期工作时触发事件,其他线程可以等待这个事件来触发自己后续的工作。等待的线程可以是多个,即CountDownLatch可以唤醒多个等待的线程。到达自己预期状态的线程会调用CountDownLatch的countDown方法,而等待的线程会调用CountDownLatch的await方法。 每次调用countDown方法时,计数都会减1,直到0为止,此时因调用await方法的阻塞线程被唤醒 代码例子: public static void main(String[] args) throws InterruptedException { CountDownLatch countDown = new CountDownLatch(1); CountDownLatch await = new CountDownLatch(5); // 依次创建并启动处于等待状态的5个MyRunnable线程 for (int i = 0; i < 5; ++i) { new Thread(new MyRunnable(countDown, await)).start(); } System.out.println("用于触发处于等待状态的线程开始工作......"); System.out.println("用于触发处于等待状态的线程工作完成,等待状态线程开始工作......"); countDown.countDown(); await.await(); System.out.println("Bingo!"); } public class MyRunnable implements Runnable { private final CountDownLatch countDown; private final CountDownLatch await; public MyRunnable(CountDownLatch countDown, CountDownLatch await) { this.countDown = countDown; this.await = await; } public void run() { try { countDown.await();//等待主线程执行完毕,获得开始执行信号... System.out.println("处于等待的线程开始自己预期工作......"); await.countDown();//完成预期工作,发出完成信号... } catch (InterruptedException e) { e.printStackTrace(); } } } 运行结果: 用于触发处于等待状态的线程开始工作...... 用于触发处于等待状态的线程工作完成,等待状态线程开始工作...... 处于等待的线程开始自己预期工作...... 处于等待的线程开始自己预期工作...... 处于等待的线程开始自己预期工作...... 处于等待的线程开始自己预期工作...... 处于等待的线程开始自己预期工作...... Bingo!

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

ownCloud/Nextcloud OCC命令行工具

列出所有用户 sudo -u apache php /var/www/html/occ user:list 扫描所有用户的所有文件 sudo -u apache php /var/www/html/occ files:scan --all 为用户user1扫描文件: sudo -u apache php /var/www/html/occ files:scan user1 扫描指定用户user1的Photos文件夹 sudo -u apache php /var/www/html/occ files:scan --path="/user1/files/Photos" 格式: files:scan [-p|--path="..."] [-q|--quiet] [-v|vv|vvv --verbose] [--all] [user_id1] ... [user_idN] 参数: user_id #扫描所指定的用户(一个或多个,多个用户ID之间要使用空格分开)的所有文件 选项: --path #限制扫描路径 --all #扫描所有已知用户的所有文件 --quiet #不输出统计信息 --verbose #在扫描过程中显示正在处理的文件和目录 --unscanned #仅扫描以前未扫描过的文件 使用OCC 新建用户 sudo -u apache php /var/www/html/occ user:add test1 Enter password: Confirm password: The user "test1" was created successfully 使用OCC 更改密码 sudo -u apache php /var/www/html/occ user:resetpassword user1 Enter a new password: Confirm the new password: Successfully reset password for user1 用户间文件迁移 sudo -u apache php /var/www/html/occ files:transfer-ownership <来源用户> <目标用户> 进入维护模式 sudo -u apache php /var/www/html/occ maintenance:mode --on sudo -u apache php /var/www/html/occ maintenance:mode --off

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

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

WebStorm

WebStorm

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

用户登录
用户注册