Wesley13 Wesley13
4年前
java并发数据结构
一.BlockingDeque阻塞双端队列(线程安全):注意ArrayDeque和LinkedList仅仅扩展了Deque,是非阻塞类型的双端队列。BlockingQueue单向队列,其内部基于ReentrantLockCondition来控制同步和"阻塞"/"唤醒"的时
Wesley13 Wesley13
4年前
SSH实现动态数据源切换,事务场景下使用AOP
上周写代码遇到了切换数据源的问题,在同一个方法中向两个不同数据源做一些操作,但是这个方法使用了事务,所以网上一般动态切换数据源的方法就失效了。框架是spirngmvchibernate,数据库是oracle,连接池druid。一般情况下,操作数据都是在DAO层进行处理。一种办法是使用多个DataSource然后创建多个SessionFa
Wesley13 Wesley13
4年前
java并发神器 AQS(AbstractQueuedSynchronizer)
AbstractQueuedSynchronizerAQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包AQS的核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的
Wesley13 Wesley13
4年前
Java编程思想1
1.13Java与Internet谈谈Java为何如此重要,为何促进计算机编程向前迈进革命性的一步?答案是:Java对于解决传统的单机程序设计问题非常有用,但是它解决了在万维网(WWW)上的程序设计问题。1.13.1Web是什么_1)C/S技术_系统具有一个中央信息存储池,用来存储某种数据,它通常存在于数据库中,你可以根据
Wesley13 Wesley13
4年前
JDK8中JVM堆内存划分
一:JVM中内存JVM中内存通常划分为两个部分,分别为堆内存与栈内存,栈内存主要用运行线程方法存放本地暂时变量与线程中方法运行时候须要的引用对象地址。JVM全部的对象信息都存放在堆内存中。相比栈内存,堆内存能够所大的多,所以JVM一直通过对堆内存划分不同的功能区块实现对堆内存中对象管理。堆内存不够最常见的错误就是OOM(OutOf
Stella981 Stella981
4年前
PHP 使用 Swoole
<p在一般的Server程序中都会有一些耗时的任务,比如:发送邮件、聊天服务器发送广播等。如果我们采用同步阻塞的防水去执行这些任务,那么这肯定会非常的慢。</p<pSwoole的TaskWorker进程池可以用来执行一些异步的任务,而且不会影响接下来的任务,很适合处理以上场景。</p<p那么什么是异步任务呢?</p<p可以从下面
Wesley13 Wesley13
4年前
MySQL主从延迟如何解决?
我们知道生产环境中经常会遇到MySQL主从延迟问题,从原理上也能看出主库的事务提交是并发模式,而从库只有一个SQL线程负责解析,所以本身上就可能存在延迟。延迟的主要原因在于:1、从库的配置往往没有主库的配置高2、主库支持并发写入,而5.7之前的版本上从库只有单线程SQL来完成任务。3、MySQL主从之间的同步,并不是完全的实时同步,而是主库
Wesley13 Wesley13
4年前
Java核心技术学习笔记——进阶——第五章 Java多线程和并发编程——5.2 Java多线程实现
1. Java多线程创建的两种方式!(https://imgblog.csdnimg.cn/20201029235126329.png?xossprocessimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hw
Wesley13 Wesley13
4年前
LWIP再探
这这里是接上一篇内存池管理部分的,这里如果读者一打开memp.c的话会感觉特别那一理解原作者在干嘛,但是看懂了就明白原作者是怎么巧妙的使用了宏。废话不多说先说了下我分析是一下宏的条件是前提条件MEMP\_STATS0MEMP\_OVERFLOW\_CHECK0首先要去简单的看下include"lwip/priv/memp\
Stella981 Stella981
4年前
ACT 与 Beetlsql 的搭配使用 二
第2章ACT与Beetlsql的搭配实战上一节为了便利,我们使用H2做为示例数据库,本节我们将使用国内目前最多人使用的MySQL,来实战一下.在本节里我们一起学习:1.ACT里如何连接数据库及配置多个数据源2.ACT里如何配置特定的数据库连接池3.项目的通用结构4.