近期接到一个任务,需要改造现有从mysql往Elasticsearch导入数据MTE(mysqlToEs)小工具,由于之前采用单线程导入,千亿数据需要两周左右的时间才能导入完成,导入效率非常低。所以楼主花了3天的时间,利用java线程池框架Executors中的FixedThreadPool线程池重 ...
分类:
编程语言 时间:
2019-07-13 19:51:04
阅读次数:
106
启动新线程,需要和操作系统进行交互,成本比较高。 使用线程池可以提高性能—— 线程池会提前创建大量的空闲线程,随时待命执行线程任务。在执行完了一个任务之后,线程会回到空闲状态,等待执行下一个任务。(这个任务,就是Runnable的run()方法,或Callable的call()方法)。 Java 5 ...
分类:
编程语言 时间:
2019-07-13 09:32:35
阅读次数:
116
java线程-sleep与wait 就绪状态是指:有抢夺cpu的权利 阻塞状态:线程处于等待状态,阻塞的原因有,io阻塞,sleep阻塞,wait阻塞,锁阻塞 sleep与wait都可以传入参数,到达某个时间就会苏醒(进入就绪状态),如果wait不加参数则必须调用notify的方法才行才会进入就绪状 ...
分类:
编程语言 时间:
2019-07-11 09:20:03
阅读次数:
101
java线程的6中状态: new runable blocked waiting timed_waiting terminated 转换图: 操作系统层面的东西,操作系统中的进程: 什么是进程: 一个程序进入到内存中的过程,简称为进程! 官方解释:process,计算机中的程序关于某数据集合中的一次 ...
分类:
编程语言 时间:
2019-07-06 00:30:55
阅读次数:
103
Java学习(四) 标签(空格分隔): Java 线程 / 进程:是一个正在执行中的程序.每一个进程执行都有一个执行顺序,该顺序是一个 执行路径,或者叫一个控制单元 线程:就是进程中的一个独立的控制单元,线程控制着进程的执行 一个进程中至少有一个线程 java vm 启动的时候会有一个进程java. ...
分类:
编程语言 时间:
2019-07-03 00:38:18
阅读次数:
113
ThreadPoolExecutor构造器参数详解 序号名称类型含义 1 corePoolSize int 线程池维护线程的最少数量 2 maximumPoolSize int 线程池维护线程的最大数量 3 keepAliveTime long 线程最大空闲时间 4 unit TimeUnit 时间 ...
分类:
编程语言 时间:
2019-06-30 00:13:11
阅读次数:
142
背景 当我们需要同时处理一批任务时,并需要在任务完成时,可以获得任务的结果时,我们该怎么办呢。 第一种方案是:保存每一个任务关联的Future,然后主线程遍历每一个Future进行get,由于get会阻塞,我们只能设置timeot为0,但是这样会有比较大的性能消耗。 第二种方案:使用阻塞队列,每一个 ...
分类:
编程语言 时间:
2019-06-29 00:58:34
阅读次数:
126
查消耗cpu最高的进程Pid 根据Pid查出消耗cpu最高的线程号 根据线程号查出对应的java线程,进行处理。 准备一行死循环代码 Linux版 Linux版本,步骤是一模一样的,就是命令换了一下 查消耗Cpu最高的进程PID 执行命令 执行top -c ,显示进程运行信息列表。按下P,进程按照C ...
分类:
其他好文 时间:
2019-06-27 13:35:20
阅读次数:
130
一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点。掌握了上图中的各知识点,Java中的多线程也就基本上掌握了。主要包括: Java线程具有五中基本状态 新建状态(New): 当线程对象对创建后,即进入了新 ...
分类:
编程语言 时间:
2019-06-24 16:56:21
阅读次数:
96
Java线程与Linux内核线程的映射关系 Java线程与Linux内核线程的映射关系Linux从内核2.6开始使用NPTL (Native POSIX Thread Library)支持,但这时线程本质上还轻量级进程。 Java里的线程是由JVM来管理的,它如何对应到操作系统的线程是由JVM的实现 ...
分类:
编程语言 时间:
2019-06-16 11:29:27
阅读次数:
141