原文:JAVA多线程统计日志计数时的线程安全及效率问题

最近工作上遇到一个需求:需要根据nginx日志去统计每个域名的qps Query Per Second,每秒查询率 数据。 解决了日志读取等问题之后,为了写一个尽可能高效的统计模块,我决定用多线程去计数,然后将统计结果保存在Map中。用多线程去计数的需求还是比较常见的。 HashMap 线程不安全,操作时只能加synchronized,结果还是单线程的计数,效率太低。ConcurrentHashM ...

2017-11-28 15:02 0 1510 推荐指数:

查看详情

Java多线程——线程安全问题

一、什么情况下会产生线程安全问题? 同时满足以下两个条件: 1,多个线程在操作共享的数据。2,操作共享数据的线程代码有多条。 当一个线程在执行操作共享数据的多条代码过程中,其他线程参与了运算,就会导致线程安全问题的产生。 例1:四个线程卖100张票 public class ...

Mon Oct 30 22:35:00 CST 2017 1 9382
Java基础-多线程-②多线程安全问题

什么是线程安全问题? 上一篇 Java基础-多线程-①线程的创建和启动 我们说使用实现Runnable接口的方式来创建线程,可以实现多个线程共享资源: 开启两个线程,共享数据t=100,执行run方法中的代码:当t大于0,打印t--。分析一下可能会存在的问题 ...

Fri Jul 25 07:38:00 CST 2014 7 8002
Java多线程-线程安全

1. 数据不共享的情况 在探讨数据共享的话题前,先来看看数据不共享的情况,每一个线程里面的数据都是独立的,就像下面的例子,3个线程,每一个线程自己对自己的数据进行扣减,直到0为止 运行结果: 2. 数据共享的情况 这里有一段测试代码,看看共享数据的结构,按照理 ...

Sat Jan 05 00:26:00 CST 2019 3 447
多线程安全问题

1、多线程安全问题分析   多线程安全问题原因是在cpu执行多线程,在执行的过程中可能随时切换到其他的线程上执行。      在以上红色选中的三个部分,线程都有可能进行切换。只要cpu在这个三个地中的任何地方切换了,都可能导致错误数据出现,线程的不安全因素就有了。   造成错误数据 ...

Mon Nov 23 02:35:00 CST 2015 2 12879
Java集合多线程安全

Properties 集合线程安全与解决方案 ArrayList线程安全问题 package com.r ...

Sat Jul 18 04:47:00 CST 2020 1 1769
java多线程线程安全详解

为什么要使用多线程: 单线程只能干一件事 而多线程可以同时干好多事(将任务放到线程里执行 效率高) 而所谓同时干并不是真正意义上的同时 只是(这里就叫CPU)cpu在每个线程中随机切换来执行 线程中要干的活 多线程编写: 1)第一种:(线程类) class Stu1 ...

Fri May 18 07:13:00 CST 2018 0 957
Java 多线程:什么是线程安全

线程安全性 什么是线程安全性 《Java Concurrency In Practice》一书的作者 Brian Goetz 是这样描述“线程安全”的:“当多个线程访问一个对象,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作 ...

Mon Feb 18 00:36:00 CST 2019 0 955
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM