一、synchronized介绍 线程安全问题的主要诱因 存在共享数据(也称临界资源) 存在多条线程共同操作这些数据 解决问题的根本方法: 同一时刻有且只有一个线程操作共享数据,其它线程必须等待该线程处理完数据后再对共享数据进行操作。 互斥锁的特性 互斥性: 即在同一时间只允许一个线程持有某个对象锁 ...
分类:
其他好文 时间:
2019-12-29 20:22:10
阅读次数:
58
IO多路复用是指同一个进程(线程)处理多个IO数据流。 注意和多线程+池模型的区别,多线程+池模型是指每个线程处理一个IO数据流。 多路复用的好处是 1,不会增加新的进程(线程),减少线程创建切换的开销。 2,当处理的消耗对比IO几乎可以忽略不计时,可以处理大量的并发IO,而不用消耗太多CPU/内存 ...
分类:
其他好文 时间:
2019-12-29 18:37:30
阅读次数:
59
如何提高 Flink 任务性能 一、Operator Chain 为了更高效地分布式执行,Flink 会尽可能地将 operator 的 subtask 链接(chain)在一起形成 task,每个 task 在一个线程中执行。将 operators 链接成 task 是非常有效的优化:它能减少线程 ...
分类:
其他好文 时间:
2019-12-29 14:44:39
阅读次数:
244
方法有以下几种: 主线程等待法 使用Thread类的join()阻塞当前线程以等待子线程处理完毕 通过Callable接口实现: 通过FutureTask Or线程池获取 一、主线程等待法 如下代码 打印的结果为 将它改造成主线程等待法 这样,5秒后就能打印name的值 二、使用Thread类的jo ...
分类:
编程语言 时间:
2019-12-28 20:43:56
阅读次数:
92
异步请求 使用副线程处理 请求,主线程可以做其他事情,提高吞吐量 ...
分类:
其他好文 时间:
2019-12-27 18:20:08
阅读次数:
108
连接层 当Mysql 启动 等待客户端连接请求,服务器都会新建一个线程处理(如果是线程池的话,则是分配一个空的线程),每个线程独立,拥有各自的内存处理空间,但是,如果这个请求指示查询,没关系,但是若是修改数据,很显然,当两个线程改同一块内存是会引发数据同步问题 连接到服务器,服务器需要进行验证,也就 ...
分类:
数据库 时间:
2019-12-23 13:31:28
阅读次数:
91
Redis简介 Redis是目前最流行的基于内存存储的key-value数据库,因其出色的性能(官方提供的数据是可以达到100000+的QPS),被常用于各大项目中。它为什么快呢?主要有以下几个原因: 1、基于内存存储和操作,读写速度非常的快。 2、采用单线程处理网络请求,避免了不必要的上下文切换, ...
分类:
其他好文 时间:
2019-12-22 00:36:08
阅读次数:
91
即使是单核处理器也支持多线程处理代码,CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几十毫秒(ms)。 CPU通过时间片分配算法来循环执行任务,当前任务执行一个时 ...
分类:
编程语言 时间:
2019-12-17 17:55:33
阅读次数:
94
一、命令概述: mysql show full processlist 用来查看当前线程处理情况,具体信息请参考官网:https://dev.mysql.com/doc/refman/5.7/en/show-processlist.html show full processlist 返回的结果是实 ...
分类:
数据库 时间:
2019-12-17 15:04:40
阅读次数:
79
线程间通信 概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。 为什么要处理线程间通信: 多个线程并发执行时, 在默 ...
分类:
编程语言 时间:
2019-12-17 13:10:14
阅读次数:
103