- 博客(17)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 Flutter实现绘制芬香小程序二维码海报,并保存到相册
效果展示准备工作引入依赖插件qr_flutter: ^3.0.1cached_network_image: ^1.0.0导入图片处理包import 'dart:ui' as ui;实现代码入口文件 share_content_post.dartclass ShareContentPost extends StatefulWidget { String bgUrl;...
2019-10-21 01:28:31
2988
原创 Java如何在两个线程之间共享数据?
Java 里面进行多线程通信的主要方式就是共享内存的方式,共享内存主要的关注点有两个:可见性和有序性原子性。Java内存模型(JMM)解决了可见性和有序性的问题,而锁解决了原子性的问题,理想情况下我们希望做到“同步”和“互斥”。有以下常规实现方法:将数据抽象成一个类,并将对这个数据的操作作为这个类的方法,这么设计可以和容易做到同步,只要在方法上加”synchronized“将R...
2019-09-15 23:38:27
3127
2
原创 Java中 volatile 关键字的作用
Java 语言提供了一种稍弱的同步机制,即 volatile 变量,用来确保将变量的更新操作通知到其他线程。volatile变量具备两种特性,volatile 变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取 volatile类型的变量时总会返回最新写入的值。特点变量可见性:其一是保证该变量对所有线程可见,这里的可见性指的是当一个线程修改了变量的值,那么新的值对于其他线程...
2019-09-15 23:38:05
867
原创 Java线程池工作过程
【Java线程池工作过程】线程池刚创建时,里面没有一个线程。任务队列是作为参数传进来的。不过,就算队列里面有任务,线程池也不会马上执行它们。当调用 execute() 方法添加一个任务时,线程池会做如下判断:a) 如果正在运行的线程数量小于 corePoolSize,那么马上创建线程运行这个任务;b) 如果正在运行的线程数量大于或等于 corePoolSize,那么将这个任务放入队...
2019-09-15 23:37:44
988
原创 Java中synchronized 和 ReentrantLock 的区别?
两者的共同点:都是用来协调多线程对共享对象、变量的访问都是可重入锁,同一线程可以多次获得同一个锁都保证了可见性和互斥性两者的不同点:4. ReentrantLock 显示的获得、释放锁,synchronized 隐式获得释放锁5. ReentrantLock 可响应中断、可轮回,synchronized 是不可以响应中断的,为处理锁的不可用性提供了更高的灵活性6. Reentra...
2019-06-10 23:09:13
1229
1
原创 Java线程池的原理
一、线程池的特点线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。他的主要特点为:线程复用;控制最大并发数;管理线程。二、线程池的原理每一个 Thread 的类都有一个 start 方法。 当调用 start 启动线程时 Java 虚拟机会调用该类的...
2019-06-04 00:05:47
147
原创 SpringMVC动态切换多个数据源解决方案(自测可用)
SpringMVC动态切换多个数据源解决方案1.数据源配置 <!-- 事务 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <propert...
2018-03-20 01:14:54
7344
6
转载 git常用命令
创建 repo: git init 添加修改到暂存区: git add <file> 提交暂存区修改到当前分支: git commit -m “<log message>" 查看当前状态(分支指向,change信息): git status 比较工作区文件与最新版本差别: git diff HEAD — <file> 显示已提交的所有文件列表: git show --p
2017-03-04 18:36:59
301
原创 工作中常用的Linux命令
切换到root用户 :sudo su -获取文件列表中最新更改的前5个:ll -t | grep -v ^total | head -5ll -t | head -6查看端口是否被占用 :netstat -anp | grep port lsof -i:port实时查看日志:tail -f 日志名less 查看日志:shift+g 最后 ctrl+b 上一页重启nginx:nginx
2017-03-04 18:23:20
375
原创 【James邮件服务器开发】在Linux系统上部署James邮件服务器
1.准备工作 下载james安装包 http://mirrors.cnnic.cn/apache//james/server/james-binary-2.3.2.1.tar.gz 必要的环境JDK 等2.安装过程把James上传到服务器(我上传到了/opt/下) 直接解压apache-james-2.3.2.1.tar.gz 安装包 解压后的文件结构如下:
2016-11-21 22:55:56
1210
原创 【常用快捷键】intellij idea 中类似Eclipse自动补全变量名称和属性名称的快捷键
intellij idea 默认快捷键模式下自动补全变量名称 : Ctrl + Alt + v自动补全属性名称 : Ctrl + Alt + f
2016-10-31 23:33:31
28182
原创 【JavaMail开发】使javamail-1.4.2 发送邮件时中文附件乱码或显示"??"的解决办法
使用mail-1.4.1.jar发送邮件时中文附件乱码或显示"??"的解决办法.
2016-08-18 21:30:22
673
Netty权威指南
2018-09-10
redis-desktop-manager-0.9.3.817
2018-09-01
为什么使用Java多线程下载文件时下载后的文件和服务器端文件大小一模一样但是无法打开
2015-05-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人