GithubHelp home page GithubHelp logo

qiurunze123 / threadandjuc Goto Github PK

View Code? Open in Web Editor NEW
2.0K 49.0 487.0 1.55 MB

⭐⭐⭐⭐高并发-高可靠-高性能three-high-import导入系统-高并发多线程进阶

Java 100.00%
guava thread java demo

threadandjuc's Introduction

邮箱 : [email protected]

Github : https://github.com/qiurunze123

QQ : 3341386488

QQ群 : 453259026

转载等操作请联系我! 我更希望你在我的基础上重新自己写一版

👫 三高导入 兵马未动粮草先行

Travis

three-high-import 项目意义在于利用多线程进行千万级别导入,实现可扩展,高性能,高可用,高可靠三个高,本项目可以在千万级别数据实现无差别高性能数据上报 与导入,与普通导入相比性能提高10倍左右,而且规避风险在偶尔的机器宕机,网络波动等情况出现时,仍能够实现数据一致数据可靠数据重试数据报警等功能,在一些重要数据 例如: 对账 , 账户金额,账单等,需要每日定时任务而且有高风险的数据实现数据无错误! 多线程从基础到进阶,分析入坑出坑,以及工作实操,最后会分享一个项目,针对如何进行大数据量(经测试几亿数据完全搞的定)进行安全高可用的策略, 示例为高可用高可靠高性能 三高导入系统 DEMO分析 ,如何进行数据分片,数据导入,计算,多线程策略等等 本文属于进阶系列,有问题或者更好的想法可以一起探讨! 一点小建议:学习本系列知识之前,如果你完全没接触过 SpringBootCountDownLatch线程池工作队列工作窃取等 等,那么我建议你可以先在网上搜一下每一块知识的快速入门, 也可以下载本项目边做边学习, 我的项目完全是实战加讲解不想写一堆的文章,浪费我们的生命,你还不懂内层含义,想要明白就边实际操作边学习 加油💪💪

目录

👫 Java多线程基础

👫 搞定ThreadLocal

👫 线程池

👫 多线程进阶更新

👫 多线程安全专题

多线程juc 分享

https://github.com/qiurunze123/threadandjuc/blob/master/docs/threadinterview.md

不知不觉 更新了小半年 从基础到并发到项目直接应用 许多地方不是很好但是是对一个人的考验 从明白到应用到写出来是一个繁琐的过程

耗时耗力不过很庆幸自己没有放弃终究是完成了 最后希望得到大家的指正与意见也希望帮助更多的人

  千岩万壑不辞劳 远看方知出处高 溪涧岂能留得住 终归大海做波涛 2019/9/24

threadandjuc's People

Contributors

qiurunze123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

threadandjuc's Issues

描述错误

线程池的核心讲解
核心参数

corePoolsize : 线程中允许的核心线程数

maximumPoolsize : 该线程所允许的最大线程数

keepAliveTime : 空余线程的存活时间并不会对所有的线程起作用 如果线程数大于corePoolsize 那么这些线程就不会因为被空闲太久而关闭 除非你调用 allowcorethreadtimeout 方法 这个方法可以使核心线程数也被回收

这个大于用错了 应该是小于

代码bug

@Override
public List<Point> recordHandlePoints(List<ImportDataStep> steps) {

    System.out.println("多线程查询======== start");

    List<Point> points = new ArrayList<>();
    for (ImportDataStep step : steps) {
        Future<List<Point>> future = executorService.submit(new HighImportDataPointFuture(step, pointLogic));
        try {
            points.addAll(future.get());
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
    }

    System.out.println("多线程查询======== point " + points.size() + " 条数==============");
    return points;
}

位于 HighImportDataServiceImpl 实现错误了吧,future.get()会阻塞线程 所以实际上是串行提交,没有线程并行
future.get()应该在任务提交之外的循环遍历获取吧

代码错误

threadpool0001.md
RUNNING = 1
<< COUNT_BITS;
应该改为-1吧

high import try demo无法正常启动

我按照教程创了三张表,改了sharding-databases里的数据库url
无论是运行 测试里的 createMillionData() 和importall 方法 都报这个错误
java.lang.IllegalStateException: Missing the data source name: 'null'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.