首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/u/4800383/blog/4830437

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

编程之美!从线程池状态管理来看二进制操作之美

二进制操作在框架设计中被频繁使用,使用二进制在不同场景有提升计算速度、较少内存占用等多种优点; 下面,我们依据线程池的状态管理,来看下怎么通过操作二进制对状态进行管理,过程中会发现编程之美~ 线程池状态 首先,为了文章的完整性,我们还是先了解一下线程池的状态,总结如下如: 线程池状态分为5种:RUNNING、SHUTDOWN、STOP、TIDYING、TERMINATED 状态代表的含义 RUNNING:(运行)接收新task,并且处理正在排队的task,不中断正在执行的任务 SHUTDOWN:(关闭)不接受新的task,只处理正在排队的task,不中断正在执行的任务 STOP:(停止)不接受新的task,也不处理正在排队的task,并且中断正在执行的任务 TIDYING:(整理)所有的task都已经终止,上述提到的workCount当前活跃线程数为0,被中断的任务和正在排队的任务执行当前任务的terminated()钩子方法 TERMINATED:(已终止)标识上述的TIDYING的过程结束,标识当前线程池成功完全停止的状态 状态转换 大致的流程就是: RUNNING --> ...

java8新特性,optional类,还在 if(obj==null)?太low了!

作为一名java开发人员,每个人都会遇到这样的问题:调用一个方法得到了返回值却不能直接将返回值作为参数去调用别的方法。我们首先要判断这个返回值是否为null,只有在非空的前提下才能将其作为其他方法的参数。否则就会出现NPE异常,就是传说中的空指针异常。 举个例子: if(null == str) { // 空指针判定 return 0; } return str.length(); //采用optional return Optional.ofNullable(str).map(String::length).orElse(0); //再来个复杂点的 public String isCheckUser(User user){ if(null != user){ // 获取角色 if(null != user.getRole()){ // 获取管理员权限 if(null != user.getRole().getPermission()){ return "获取管理员权限"; } } }else{ return "用户为空"; } ...

相关文章

发表评论

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

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

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文件系统,支持十年生命周期更新。

用户登录
用户注册