这篇文章记录的主要是java多线程部分的基础知识,记录一下线程的创建、同步、通信问题。感觉细节部分还是挺难的,比如线程的同步问题,解决多线程处理共享数据的线程安全问题,这里最经典的一个例子就是买火车票问题,要解决全国这么多用户的买票问题,这个线程数量级是很大的。 ...
分类:
编程语言 时间:
2020-07-08 15:07:15
阅读次数:
49
自由自在 废话省略... 主要有三个类; 线程池构造工厂 ExecutorServiceFactory 线程处理类 ExecutorProcessPool 测试 ExecutorTest package com.adao.test.Executor; import java.util.concurr ...
分类:
编程语言 时间:
2020-07-01 19:58:31
阅读次数:
67
mysql show full processlist 查看当前线程处理情况 事发现场 每次执行看到的结果应该都有变化,因为是实时的,所以我定义为:“事发现场”,每次执行就相当于现场的快照。 一般用到 show processlist 或 show full processlist 都是为了查看当前 ...
分类:
数据库 时间:
2020-06-26 01:01:46
阅读次数:
80
在工作中,会遇到需求多线程处理相应的业务需求,最典型的包括Socket的通信。 多线程处理里,就会考虑到,哪个线程先运转,哪个线程后运转的情况。 这里我介绍一下,运用ManualResetEvent类来对线程进行堵塞和持续操作。 它有三个重要的办法:Reset、Set和WaitOne。 1、首先介绍 ...
分类:
编程语言 时间:
2020-06-25 17:50:33
阅读次数:
60
概述 现代程序开发过程中不可避免会使用到多线程相关的技术,之所以要使用多线程,主要原因或目的大致有以下几个: 1、 业务特性决定程序就是多任务的,比如,一边采集数据、一边分析数据、同时还要实时显示数据; 2、 在执行一个较长时间的任务时,不能阻塞UI界面响应,必须通过后台线程处理; 3、 在执行批量 ...
分类:
编程语言 时间:
2020-06-19 00:41:28
阅读次数:
170
Ping功能是测试网络是否连接的有效方式。通常我们需要通过ping来验证网络连接是否正常,这就需要我们经常用到ping功能。 ping是有一定的阻塞,如果频繁使用会导致应用程序出现阻塞现象,为了避免这种情况的发生,我们这里举例用线程的方式对网络进行ping来验证网络是否连接正常: UI布局 添加按键 ...
分类:
编程语言 时间:
2020-06-16 15:00:21
阅读次数:
61
1.简单介绍 选择器提供选择执行已经就绪的任务的能力.从底层来看,Selector提供了询问通道是否已经准备好执行每个I/O操作的能力。Selector 允许单线程处理多个Channel。仅用单个线程来处理多个Channels的好处是,只需要更少的线程来处理通道。事实上,可以只用一个线程处理所有的通 ...
分类:
其他好文 时间:
2020-06-07 09:20:18
阅读次数:
80
通常处理HTTP请求时使用同步处理的方式,但有时根据业务场景和性能要求异步处理可能更合适。简单说下概念。 同步处理:一个HTTP请求进入一个主线程,主线程处理完后给出一个HTTP响应。 异步处理:一个HTTP请求进入一个主线程,主线程调用一个副线程,副线程处理业务逻辑,当副线程处理完后,主线程把结果 ...
分类:
编程语言 时间:
2020-05-28 19:37:31
阅读次数:
72
一、简介 什么是线程池 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。 为什么要用线程池 如果并发请求数量很多,但每个线程执行的时间很短,就会出现频繁的创建和销毁线程。如此一来,会大大降低系统的效率,可能频繁创建和销毁线程的时间、资源开销要大于实际工作的需 ...
分类:
编程语言 时间:
2020-05-27 15:31:44
阅读次数:
63
redis号称单机QPS可达10万。为什单线程的redis竟然能达到这么高的qps? 网上有很多大佬已经给我们总结好了: 1、完全是内存操作 2、单线程处理 3、高效的数据结构,redis有自己的一套数据结构 4、使用多路复用i/o模型,非阻塞 5、其他方面的优化 我想多问几个问题: 第一点,red ...
分类:
其他好文 时间:
2020-05-24 00:26:31
阅读次数:
71