Wesley13 Wesley13
3年前
java 多线程总结篇4——锁机制
在开发Java多线程应用程序中,各个线程之间由于要共享资源,必须用到锁机制。Java提供了多种多线程锁机制的实现方式,常见的有synchronized、ReentrantLock、Semaphore、AtomicInteger等。每种机制都有优缺点与各自的适用场景,必须熟练掌握他们的特点才能在Java多线程应用开发时得心应手。——《Java锁机制详解》(
菜园前端 菜园前端
2年前
什么是 JavaScript 单线程?
原文链接:什么是JavaScript单线程?单线程是指当存在多个任务时候,所有任务都必须排队并且按照顺序执行。这里就会有同学问为什么不是多线程?假设是多线程,同时执行一些任务,某个任务进行了该dom的修改,而某个任务进行了该dom的删除,这样就会出现一些问
Wesley13 Wesley13
3年前
java并发面试常识之ArrayBlockingQueue
       ArrayBlockingQueue是常用的线程集合,在线程池中也常常被当做任务队列来使用。使用频率特别高。他是维护的是一个循环队列(基于数组实现),循环结构在数据结构中比较常见,但是在源码实现中还是比较少见的。线程安全的实现     线程安全队列,基本是离不开锁的。ArrayBlockingQueue使用的是Reen
Wesley13 Wesley13
3年前
4、jstack查看线程栈信息
1、介绍利用jps、top、jstack命令找到进程中耗时最大的线程,以及线程状态等等,同时最后还可以显示出死锁的线程查找:FoundoneJavaleveldeadlock即可1、jps获得进程号!(https://oscimg.oschina.net/oscnet/da00a309fa6
Stella981 Stella981
3年前
Druid连接池 一个设置 removeAbandonedTimeout
Druid连接池一个设置removeAbandonedTimeout博客分类:数据库 <!超过时间限制是否回收 <propertyname"removeAbandoned"value"true"/ <!超时时间;单位为秒。180秒3分钟 <propertyname"remov
Stella981 Stella981
3年前
Python使用grequests并发发送请求
\TOC\前言requests是Python发送接口请求非常好用的一个三方库,由K神编写,简单,方便上手快。但是requests发送请求是串行的,即阻塞的。发送完一条请求才能发送另一条请求。为了提升测试效率,一般我们需要并行发送请求。这里可以使用多线程,或者协程,gevent或者aiohttp,然而使用起来,都相对麻烦。greques
Stella981 Stella981
3年前
Python3与Python2的差异
基于python3浅谈python3与python2的差异。由于现今主流Python3,但是之前用Python2做的项目,还得维护,所以作为python工作者,不免要了解其中差异,其中,Python2有ASCIIstr()类型,unicode()是单独的,不是byte类型。而Python3.X源码文件默认使用utf8编码,以及一个
Stella981 Stella981
3年前
Druid连接管理分析
Druid创建连接的过程    Druid是通过一个创建连接线程来完成连接,如下图所示:    Druid有且只有一个线程来创建连接,为了防止不必要的线程时间片的消耗,其采用了await()/notify()的方式,当其创建了足够的多的连接之后就处于调用await(),使得线程处于blocked状态。当其接收
Stella981 Stella981
3年前
HikariCP
数据库连接池技术数据库连接池负责分配、管理和释放数据库的连接。1.数据库连接复用。重复使用现有的数据库连接,可以避免连接频繁建立、关闭的开销。2.统一的连接管理。释放空闲时间超过最大空闲时间的数据库连接,避免因为没有释放数据库连接而引起的数据库连接泄漏。HikariCP字节码精简:优化代码,直到编译后的字节码最少
Wesley13 Wesley13
3年前
Java多线程消费者、生产者的基本思路
多线程主要考察的就是线程的同步控制  生产者消费者的思路就是,当一个线程执行时让另一个线程挂起就行了ThreadOne、ThreadTwo同时运行,添加一个变量在一个公共类(下边的Function类)中,例如:当变量为true,ThreadOne执行ThreadTwo挂起;当变量为false,ThreadOne挂起ThreadTw