{"id":15025609,"url":"https://github.com/qiurunze123/threadandjuc","last_synced_at":"2025-04-14T20:53:09.725Z","repository":{"id":37733375,"uuid":"149083893","full_name":"qiurunze123/threadandjuc","owner":"qiurunze123","description":"⭐⭐⭐⭐高并发-高可靠-高性能three-high-import导入系统-高并发多线程进阶","archived":false,"fork":false,"pushed_at":"2023-11-30T10:02:53.000Z","size":1591,"stargazers_count":2078,"open_issues_count":24,"forks_count":497,"subscribers_count":49,"default_branch":"master","last_synced_at":"2025-04-07T14:09:35.053Z","etag":null,"topics":["demo","guava","java","thread"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qiurunze123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-17T07:11:29.000Z","updated_at":"2025-04-07T06:53:13.000Z","dependencies_parsed_at":"2025-03-24T12:11:08.150Z","dependency_job_id":"f37944ef-f066-48e9-b644-2a64ac631c36","html_url":"https://github.com/qiurunze123/threadandjuc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qiurunze123%2Fthreadandjuc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qiurunze123%2Fthreadandjuc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qiurunze123%2Fthreadandjuc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qiurunze123%2Fthreadandjuc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qiurunze123","download_url":"https://codeload.github.com/qiurunze123/threadandjuc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248961048,"owners_count":21189990,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["demo","guava","java","thread"],"created_at":"2024-09-24T20:02:40.947Z","updated_at":"2025-04-14T20:53:09.701Z","avatar_url":"https://github.com/qiurunze123.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e 邮箱 : [QiuRunZe_key@163.com](QiuRunZe_key@163.com)\n\n\u003e Github : [https://github.com/qiurunze123](https://github.com/qiurunze123)\n\n\u003e QQ : [3341386488](3341386488)\n\n\u003e QQ群 : [453259026](453259026) \n\n\u003e 转载等操作请联系我！ 我更希望你在我的基础上重新自己写一版\n\n #### :couple: 三高导入 兵马未动粮草先行 \n \n  ### [three-high-import 高可用 高可靠 高性能 三高多线程导入系统（该项目意义为理论贯通)](/docs/code-solve.md)\n   [![Travis](https://img.shields.io/badge/language-Java-yellow.svg)](https://github.com/qiurunze123)\n\n  three-high-import 项目意义在于利用多线程进行千万级别导入,实现`可扩展`,`高性能`,`高可用`,`高可靠`三个高，本项目可以在千万级别数据实现无差别高性能数据上报\n  与导入,与普通导入相比性能提高10倍左右,而且规避风险在偶尔的机器宕机，网络波动等情况出现时，仍能够实现`数据一致`，`数据可靠`，`数据重试`，`数据报警`等功能,在一些重要数据\n  例如： 对账 ， 账户金额，账单等，需要每日定时任务而且有高风险的数据实现数据无错误！\n  多线程从基础到进阶，分析入坑出坑，以及工作实操,最后会分享一个项目，针对如何进行大数据量（经测试几亿数据完全搞的定）进行安全高可用的策略，\n  示例为高可用高可靠高性能 三高导入系统 DEMO分析 ,如何进行数据分片,数据导入,计算,多线程策略等等 本文属于进阶系列，有问题或者更好的想法可以一起探讨！ \n  一点小建议：学习本系列知识之前，如果你完全没接触过 `SpringBoot`、`CountDownLatch`、`线程池`、`工作队列`、`工作窃取等` 等，那么我建议你可以先在网上搜一下每一块知识的快速入门， 也可以下载本项目边做边学习，\n  我的项目完全是实战加讲解不想写一堆的文章，浪费我们的生命，你还不懂内层含义，想要明白就边实际操作边学习 加油💪💪\n \n - 三高导入项目\n     - [表设计](/docs/code-solve.md)\u003cbr\u003e\n     - [数据如何分片](/docs/code-solve.md)\n     - [如何实现高可用](/docs/code-solve.md)\u003cbr\u003e\n     - [如何实现高性能](/docs/code-solve.md)\u003cbr\u003e\n     - [如何实现高可靠](/docs/code-solve.md)\n     - [如何自定义线程池以及使用与导入](/docs/code-solve.md)\n     - [数据的导入性能(之前的老版本三高导入10万数据大概13s左右新版本还在开发)](/docs/code-solve.md)\n     - [进行线程拆分分配资源 ](/docs/code-solve-split.md)\n \n###  [多线程之前更新版本 -- 请进代码路径：com.geek.threadandjuc](/docs/thread-base-1.md)\n \n## 目录\n#### :couple: Java多线程基础\n\n  - 多线程基础\n    - [你需要知道的几个概念](/docs/thread-base-0000.md)\u003cbr\u003e\n    - [多线程到底有几种实现方式](/docs/thread-base-000.md)\n    - [多线程使用runnable与继承Thread类有什么区别](/docs/thread-base-001.md)\u003cbr\u003e\n    - [多线程如何正确优雅的中断线程](/docs/thread-base-002.md)\u003cbr\u003e\n    - [多线程的生命周期状态纽机流转错误错误说法](/docs/thread-base-003-1.md)\n    - [多线程的生命周期状态纽机流转](/docs/thread-base-003.md)\n    - [Thread和Object类](/docs/thread-base-003-2.md)\n    - [多线程重要属性](/docs/thread-base-004.md)\n    - [多线程异常处理机制](/docs/thread-base-005.md)\n    - [多线程wait notify notifyall join sleep yield作用与方法详细解读](/docs/thread-base-006.md)\n    - [多线程可能会带来什么问题](/docs/thread-base-007.md)\n    - [多种单例模式](/docs/thread-base-008.md)\n  - 并发容器\n    - [map简介](/docs/bfrq.md)\u003cbr\u003e\n    - [vector和HashTable](/docs/bfrq.md)\u003cbr\u003e\n    - [ConcurrentHashMap](/docs/bfrq.md)\u003cbr\u003e\n    - [CopyOnWriteArrayList](/docs/bfrq.md)\n    - [BlockingQueue](/docs/bfrq.md)\u003cbr\u003e\n    \n#### :couple: 搞定ThreadLocal\n  - 搞定ThreadLocal\n    - [ThreadLocal定性使用场景介绍](/docs/ThreadLocal.md)\u003cbr\u003e\n    - [ThreadLocal一些方法使用](/docs/ThreadLocal.md)\u003cbr\u003e\n    - [ThreadLocal源码分析](/docs/ThreadLocal.md)\u003cbr\u003e\n    - [ThreadLocal内存泄露](/docs/ThreadLocal.md)\u003cbr\u003e\n    - [ThreadLocal如果避免内存泄露](/docs/ThreadLocal.md)\u003cbr\u003e\n    - [ThreadLocal在spring中的应用](/docs/ThreadLocal.md)\u003cbr\u003e\n\n#### :couple: 线程池\n\n  - 线程池\n    - [JDK 线程池高度解析](/docs/thread-base-9.md)\u003cbr\u003e\n    - [线程池是什么](/docs/threadpool0001.md)\n    - [多次创建线程的劣势](/docs/threadpool0001.md)\u003cbr\u003e\n    - [什么时候使用线程池](/docs/threadpool0001.md)\u003cbr\u003e\n    - [线程池的优势](/docs/threadpool0001.md)\n    - [Executor框架](/docs/threadpool0001.md)\n    - [如何使用钩子函数来进行线程池操作](/docs/threadpool0001.md)\n    - [线程池的重点属性](/docs/threadpool0001.md)\n    - [多线程重要属性](/docs/threadpool0001.md)\n    - [线程池的具体实现](/docs/threadpool0001.md)\n    - [线程池的创建](/docs/threadpool0001.md)Z\n    - [线程池参数解释](/docs/threadpool0001.md)\n    - [线程池监控](/docs/threadpool0001.md)\n    - [线程池的源码分析](/docs/threadpool0001.md)\n       - [execute方法](/docs/threadpool0001.md)\n       - [addWorker方法](/docs/threadpool0001.md)\n       - [Worker类](/docs/threadpool0001.md)\n       - [runWorker方法](/docs/threadpool0001.md)\n       - [getTask方法](/docs/threadpool0001.md)\n       - [processWorkerExit方法](/docs/threadpool0001.md)\n       - [小结](/docs/threadpool0001.md)\n       - [processWorkerExit方法](/docs/threadpool0001.md)\n       - [手写线程池代码](/docs/threadpool0001.md)\n\n#### :couple: 多线程进阶更新\n\n  - 线程池\n    - [多线程安全问题](/docs/JMM.md)\u003cbr\u003e\n    - [JMM多线程内存模型](/docs/JMM.md)\n    - [JMM多线程内存模型](/docs/JMM-1.md)\u003cbr\u003e\n    - [死锁专题分析](/docs/dlock.md)\u003cbr\u003e\n    - [AQS--一切的基础 Doug Lee 是个天才](/docs/AQS.md)\n    - [Future模式精度分析 Future 模式](/docs/Future.md)\n    - [java并行程序基础](/docs/thread-base-3.md)\n    - [java内存模型和线程安全](/docs/thread-base-4.md)\n    - [valatile 专题解析](/docs/thread-base-5.md)\n    - [无锁类 CAS , ABA , Atomic ......](/docs/thread-base-6.md)\n    - [公平锁,非公平锁，可重入锁，递归锁，自旋锁](/docs/lock.md)\n    - [阻塞队列.](/docs/blocking.md)\n    - [ synchronized和lock 的区别 .](/docs/sandl.md)\n    - [JDK并发包reentrantlock,condition , semaphone ，readwritelock ](/docs/thread-base-7.md)\n    - [countDownLatch](/docs/CountDownLatch.md)\n    - [reentrantlock 源码分析 ReentrantLockDetails](/docs/thread-base-7.md)\n    - [JDK并发包 ConcurrentHashMap 精度分析](/docs/thread-base-8.md)\n    - [JDK ForkJoin 模式精度分析](/docs/thread-base-10.md)\n    - [JDK 单例模式 不变模式 Future模式 生产者 消费者](/docs/thread-base-11.md)\n    - [NIO AIO 详解](/docs/thread-base-12.md)\n    - [并发断点调试 JDK新特性](/docs/thread-base-13.md)\n    - [锁优化 ](/docs/thread-base-13.md)\n    - [数据伪共享 false—shareing disruptor](/docs/false-shareing.md)\n    - [原子性小讲](/docs/atom.md)\n\n     更新此问题的出发点是 **disruptor框架和百度的分布式id生成策略** \n     https://github.com/baidu/uid-generator/blob/master/README.zh_cn.md\n\n\n#### :couple: 多线程安全专题\n\n  - 线程池\n    - [一共有几类线程安全的问题](/docs/threadsafe001.md)\u003cbr\u003e\n    - [哪些场景需要额外注意线程安全问题](/docs/threadsafe001.md)\n    - [多线程切换上下文](/docs/threadsafe001.md)\u003cbr\u003e\n    - [死锁特辑](/docs/threadsafe001.md)\u003cbr\u003e\n\n### 多线程juc 分享 \n\n https://github.com/qiurunze123/threadandjuc/blob/master/docs/threadinterview.md\n\n\n #### 不知不觉 更新了小半年 从基础到并发到项目直接应用 许多地方不是很好但是是对一个人的考验 从明白到应用到写出来是一个繁琐的过程\n #### 耗时耗力不过很庆幸自己没有放弃终究是完成了 最后希望得到大家的指正与意见也希望帮助更多的人 \n \n      千岩万壑不辞劳 远看方知出处高 溪涧岂能留得住 终归大海做波涛 2019/9/24\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqiurunze123%2Fthreadandjuc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqiurunze123%2Fthreadandjuc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqiurunze123%2Fthreadandjuc/lists"}