Linux服务器程序必须处理三类事件,I/O事件、信号和定时事件。在处理这三类事件时我们通常需要考虑如下三个问题: 统一事件源,即统一处理这三类事件,一般利用I/O复用系统调用来实现。 可移植性,不同操作系统具有不同的I/O复用方式。 对并发编程的支持,在多进程和多线程环境下,我们需要考虑各执行实体 ...
分类:
其他好文 时间:
2020-06-12 00:43:59
阅读次数:
62
一、异常 1. 概述 异常:指的是程序在执行过程中,出现的非正常的情况,最终导致JVM虚拟机的非正常停止 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理 异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文 ...
分类:
编程语言 时间:
2020-06-11 23:21:15
阅读次数:
97
避免使用 Executors 来创建线程。 说明: Executors各个方法的弊端: 1)newFixedThreadPool和newSingleThreadExecutor: 主要问题是堆积的请求处理队列可能会耗费非常大的内存,甚至OOM。 2)newCachedThreadPool和newSc ...
分类:
编程语言 时间:
2020-06-11 21:40:17
阅读次数:
66
并发与并行的区别 Erlang 之父 Joe Armstrong 用一张5岁小孩都能看懂的图解释了并发与并行的区别 并发是两个队列交替使用一台咖啡机,并行是两个队列同时使用两台咖啡机 如果是串行,一个队列使用一台咖啡机,那么哪怕前面那个人便秘了去厕所呆了半天,后面的那个人也只能 死等他回来才能去接咖 ...
分类:
编程语言 时间:
2020-06-11 20:09:31
阅读次数:
89
jdk8新语法: JDK8 JDK1.0 95 Vector Hashtable synchronized JDK1.2 98 List Set Map JDK1.5 2004 泛型 枚举 标注 多线程 自动封箱 静态导入 可变长参数(本文档有讲解) JDK6 Arrays.copyOf() JDK ...
分类:
其他好文 时间:
2020-06-11 16:23:29
阅读次数:
50
昨天,由于工作比较繁忙,只是简单整理了一下java的线程的生命周期的流程图,今天就根据这个流程图来一步一步的讲解java多线程的知识。 图再来一遍: 第一点、java线程新生态的生成 也就是线程新建成功 1、继承Thread类(为了方便添加线程名字,可以自定义构造方法),代码如下: public c ...
分类:
编程语言 时间:
2020-06-11 01:17:00
阅读次数:
72
简述 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果 定义模型的目标 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到 ...
分类:
编程语言 时间:
2020-06-11 00:50:57
阅读次数:
70
Spring支持不同的scope。不同scope在使用上是有差异的,比如singleton与prototype。 问题背景 我们知道,Spring bean 默认的 scope 是 singleton(单例),但有些场景(比如多线程)需要每次调用都生成一个实例,此时 scope 就应该设为 prot ...
分类:
编程语言 时间:
2020-06-10 21:21:00
阅读次数:
68
在多线程并发的情况下,单个节点内的线程安全可以通过synchronized关键字和Lock接口来保证。 synchronized和lock的区别 Lock是一个接口,是基于在语言层面实现的锁,而synchronized是Java中的关键字,是基于JVM实现的内置锁,Java中的每一个对象都可以使用s ...
分类:
其他好文 时间:
2020-06-10 19:24:18
阅读次数:
54
1170818605-ZE4RYW7EWT2UQCJYSZQQQQQQQTQTF3RQKE3WAVY2WUCZ6UKXTAVZ2KUXTDFMBCJENJGQSFDC6ZBC2WJEAZVRWCSEWCNBHJKXGMYX6DGXVCFCH4DXSU2VHYJFECJXNG3TVFKZ37RR548 ...
分类:
编程语言 时间:
2020-06-10 17:24:39
阅读次数:
81