热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

前文:单线程——多线程的开启——线程锁——线程同步工具——手写连接池——连接池工具类。一、线程1.线程的概念2.线程与进程的关系3.定义:区别&#
前文:

单线程——多线程的开启——线程锁——线程同步工具——手写连接池——连接池工具类。

一、线程

1.线程的概念

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

2.线程与进程的关系

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

3.定义:

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

区别:如上!!!

4.wait()和sleep()

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

5.线程的状态及其他API

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

 


二、线程锁

线程并发同步时,引入了锁机制。

1. 普通锁机制:synchronized 修饰代码块与volatile 修饰成员变量

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

2.Lock

!!共同点:都是从外面创建锁类、再把锁传到线程里对变量对象赋值。

(1)重入锁

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

(2)读写分离锁

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

区别:

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

 

二、线程同步工具类

!!共同点:都是从外面创建工具类、再把工具类的参数传到线程里面执行。

1.CountDowmLatch闭锁:等待所有线程执行完

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

2.CyclicBarrier栅栏:等待所有线程达到后开启

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

3.Exchanger交换机:交流数据

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

4.信号量

(1)概念

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

(2)应用场景一

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

(3)应用场景二

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

 

三、线程池


这里分享一个手写代码实现线程池的视频,需要代码的朋友可以加入到群里一起探讨技术交流,领取资料

线程池视频链接:

 

1.为什么使用线程池

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

2.线程池的核心队列

阻塞式队列:只用于线程对象,主要用于引出线程池

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

3.手动创建线程池

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

4.Executors工具创建线程

核心线程:0(临时线程)、1(队列)、N(队列)

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

定时线程:

高并发:线程、线程锁与线程池(精华),手写代码实现线程池

 

 

 

四、彩蛋图

高并发:线程、线程锁与线程池(精华),手写代码实现线程池


推荐阅读
  • 面试题总结_2019年全网最热门的123个Java并发面试题总结
    面试题总结_2019年全网最热门的123个Java并发面试题总结 ... [详细]
  • 深入探讨:Actor模型如何解决并发与分布式计算难题
    在现代软件开发中,高并发和分布式系统的设计面临着诸多挑战。本文基于Akka最新文档,详细探讨了Actor模型如何有效地解决这些挑战,并提供了对并发和分布式计算的新视角。 ... [详细]
  • JUC并发编程——线程的基本方法使用
    目录一、线程名称设置和获取二、线程的sleep()三、线程的interrupt四、join()五、yield()六、wait(),notify(),notifyAll( ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • 关于进程的复习:#管道#数据的共享Managerdictlist#进程池#cpu个数1#retmap(func,iterable)#异步自带close和join#所有 ... [详细]
  • 在iOS开发中,多线程技术的应用非常广泛,能够高效地执行多个调度任务。本文将重点介绍GCD(Grand Central Dispatch)在多线程开发中的应用,包括其函数和队列的实现细节。 ... [详细]
  • 深入理解Java多线程与并发机制
    本文探讨了Java多线程和并发机制的核心概念,包括多线程类的分类、执行器框架、并发容器及控制工具。通过详细解析这些组件,帮助开发者更好地理解和应用多线程技术。 ... [详细]
  • 春季职场跃迁指南:如何高效利用金三银四跳槽季
    随着每年的‘金三银四’跳槽高峰期的到来,许多职场人士都开始考虑是否应该寻找新的职业机会。本文将探讨如何制定有效的职业规划、撰写吸引人的简历以及掌握面试技巧,助您在这关键时期成功实现职场跃迁。 ... [详细]
  • 深入理解Java SE 8新特性:Lambda表达式与函数式编程
    本文作为‘Java SE 8新特性概览’系列的一部分,将详细探讨Lambda表达式。通过多种示例,我们将展示Lambda表达式的不同应用场景,并解释编译器如何处理这些表达式。 ... [详细]
  • 本文详细介绍了Sleep函数的基本概念、使用方法及其背后的实现原理。适合对Sleep函数的使用和实现感兴趣的开发者阅读。通过本文,您将了解如何在不同操作系统中使用Sleep函数,以及其在多线程编程中的重要性。 ... [详细]
  • 大华股份2013届校园招聘软件算法类试题D卷
    一、填空题(共17题,每题3分,总共51分)1.设有inta5,*b,**c,执行语句c&b,b&a后,**c的值为________答:5 ... [详细]
  • 驱动程序的基本结构1、Windows驱动程序中重要的数据结构1.1、驱动对象(DRIVER_OBJECT)每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱 ... [详细]
  • 我自己做了一个网站图片的抓取,感觉速度有点慢抓取4000张图片可能得用15分钟左右的时间,我百度看用线程可以加快抓取,然后创建了5个线程抓取,但是5个线程是同步执行同样的操作一个图片就 ... [详细]
  • 在运行于MS SQL Server 2005的.NET 2.0 Web应用中,我偶尔会遇到令人头疼的SQL死锁问题。过去,我们主要通过调整查询来解决这些问题,但这既耗时又不可靠。我希望能找到一种确定性的查询模式,确保从设计上彻底避免SQL死锁。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
author-avatar
金爽20111018
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有