Nginx相对于Apache的优势: 1.轻量级,采用C进行编写,同样的web服务,会占用更少的内存及资源 2.抗并发,nginx以epoll and kqueue作为开发模型,处理请求是异步非阻塞的,多个连接对应一个进程,负载能力比apache高很多, 而apache则是同步多进程模型,只能一个连 ...
分类:
Web程序 时间:
2020-10-08 19:50:06
阅读次数:
44
首先,我们先了解一下什么是阻塞队列: 当队列满了时,队列会阻塞插入元素的线程,直到队列不满; 当队列为空时,获取元素的线程会等待队列变成非空。 常用到的方法 上面是对阻塞队列的简单了解,下面重点分析一下LinkedBlockingQueue。 源码分析 Node节点 可以看出是单向的链表结构 sta ...
分类:
数据库 时间:
2020-09-24 22:14:44
阅读次数:
101
在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得任何股票投资银行的前台资讯职位,那么你应该准备很多关于多线程的问题。在投资银行业务中多线程和并发是一个非常受欢迎的话题,特别是电子交易发展方面相关的。他们会问面试者很多令人混淆的Java线程问题。面试官只是想确信面试者有足 ...
分类:
编程语言 时间:
2020-09-24 22:01:17
阅读次数:
58
突击并发编程JUC系列演示代码地址: https://github.com/mtcarpenter/JavaTutorial 小伙伴们,大家好,我们又见面了,突击并发编程 JUC 系列实战原子引用马上就要发车了。 原子引用 AtomicReference 类提供了对象引用的非阻塞原子性读写操作,对比 ...
分类:
其他好文 时间:
2020-09-24 21:55:36
阅读次数:
31
我这里需要通过多线程去处理数据,然后在所有数据都处理完成后再往下执行。这里就用到了CountDownLatch。把countdownlatch作为参数传入到每个线程类里,在线程中处理完数据后执行countdown方法。在所有countdownlatch归零后,其await方法结束阻塞状态而往下执行。 ...
分类:
编程语言 时间:
2020-09-24 21:49:43
阅读次数:
58
Nginx为什么比Apache的并发高,连接数更多 答:nginx使用了epoll模式,以异步阻塞的方式工作。 处理过程:apache prefork模式是处理单进程,每进来一个request,采用master-worker的方式,会有一个worker进程去处理。但不是全程的处理,处理的是可能发生阻 ...
分类:
Web程序 时间:
2020-09-24 21:34:18
阅读次数:
59
最近在项目使用Java8 的CompletableFuture执行一些异步多线程任务,一时疏忽,导致ArrayList出现线程安全问题 就算在方法内使用局部变量,但使用异步多线程执行任务,还是会出现线程安全问题 以下是错误、正确使用的示例方法: package test; import java.t ...
分类:
编程语言 时间:
2020-09-18 04:08:44
阅读次数:
47
1、阻塞IO模型 传统的IO模型,即在数据读写的过程中会发生阻塞现象。当用户线程发出IO请求之后,内核回去查看数据是否就绪,如果没有就绪就等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回数据给用户线程,用户线程才解除阻塞状态。典型的阻塞 ...
分类:
编程语言 时间:
2020-09-18 03:12:36
阅读次数:
41
写在前面 在Java中提供了synchronized关键字来保证只有一个线程能够访问同步代码块。既然已经提供了synchronized关键字,那为何在Java的SDK包中,还会提供Lock接口呢?这是不是重复造轮子,多此一举呢?今天,我们就一起来探讨下这个问题。 再造轮子? 既然JVM中提供了syn ...
分类:
编程语言 时间:
2020-09-18 02:25:58
阅读次数:
29