-
Java高性能编程实战 --- 线程封闭与ThreadLocal
1 线程封闭多线程访问共享可变数据时,涉及到线程间数据同步的问题。并不是所有时候,都要用到 共享数据,所以线程封闭概念就提出来了。数据都被封闭在各自的线程之中,就不需要同步,这种通过将数据封闭在线程中而避免使 用同步的技术称为线程封闭。避免并发异常最简单的方法就是线程封闭 即 把对象封装到一个线程里,只有该线程能看到此对象; 那么该对象就算非线程安全,也不会出现任何并发安全问题...
-
将HTML表格转换成精美的PDF,几种生成PDF的解决方案
包含表格、图表和图形的Web应用程序通常包含将数据导出为PDF的选项。你有没有想过,作为一个用户,当你点击那个按钮时,幕后发生了什么?作为开发人员,如何让PDF输出看起来更专业?大多数免费的在线PDF导出器实际上只是将HTML内容转换为PDF,而不进行任何额外的格式化,这会使数据难以阅读。如果你也能添加诸如页眉和页脚、页码或重复的表列标题等内容呢?像这样的小点缀,对把一份看起来...
-
如何快速用Vue-element-admin撸了个管理后台
最近一个朋友找我开发一个用于库存管理的后台,虽然逻辑并不是很复杂而且系统也并不是很大,但是因为存在一些定制需求,所以就希望通过自行开发,而不是直接使用目前市场上的库存管理后台。我也正好最近在研究一些新的前端框架,这次开发周期并不是很紧,所以也就正好可以给我对于一些之前没有使用过的前端框架练练手。为什么选vue-element-admin因为有段时间没有直接开发PC端前端项目了,...
-
线程池的7种创建方式,强烈推荐你用它
根据摩尔定律所说:集成电路上可容纳的晶体管数量每 18 个月翻一番,因此 CPU 上的晶体管数量会越来越多。但随着时间的推移,集成电路上可容纳的晶体管数量已趋向饱和,摩尔定律也渐渐失效,因此多核 CPU 逐渐变为主流,与之相对应的多线程编程也开始变得普及和流行起来,这当然也是很久之前的事了,对于现在而言多线程编程已经成为程序员必备的职业技能了,那接下来我们就来盘一盘“线程池”这...
-
Centos 7 部署Ceph集群
一、环境准备各节点IP分配如下表:1、主机名四个节点分别配置主机名[root@localhost ~]# hostnamectl set-hostname ceph-admin[root@localhost ~]# hostnamectl set-hostname node1[root@localhost ~]# hostnamectl set-hostname node2[r...
-
ES6-promise使用
一、promise对象的使用所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件的结果。从语法上说,Promise 对象用于表示一个异步操作的最终完成 (或失败), 及其结果值。对象的状态不受外界影响。Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。then 方法then 方...
-
今天教大家Nginx+tomcat负载均衡群集如何配置
实验环境如下这里需要准备4台服务器(1台nginx、2台tomcat做负载、一台MySQL做数据存储)准备软件包如下:nginx配置(172.16.1.54)1、安装依赖包yum -y install pcre-devel zlib-devel gcc gcc-c++ 12、创建nginx运行用户useradd -M -s /sbin/nologin nginx 13、解压源码...