多线程

本文介绍了Tomcat中的线程池实现原理及其组成部分,包括线程池、执行器和任务。此外还探讨了多线程环境下的锁机制,如排他锁、共享锁、乐观锁与悲观锁,并解释了它们在数据库操作中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tomcat----http Server (线程池)+ servlet Container

线程池实现原理:简单理解就是一个用来存放线程的池子,里面放了很多的线程,当我们需要用到线程的时候就可以直接去线程池里面取,线程完成我们的任务之后就自动返回到线程池中。

  A. 线程池:它是一个可以容纳线程的容器,里面装了很多的执行器(也就是线程),既然它是容器,那么就可以有很多实现方式,可以是链接,或者是数组,只要是可以用来装的都可以

 B. 执行器:也就是线程,它是线程池里面管理的主要对象,我们可以向线程池获取执行器,每一个执行器都可以完成一个任务(Task),当任务完成后,就要将执行器自身放回线程池中

C. 任务:Task 它就是我们需要提交给执行器执行的事务(让线程执行的事)

多线程中线程安全Synchoronized锁机制是核心:

锁机制:排他锁、共享锁、行锁、表锁、

多线程+数据库乐观锁、悲观锁:

Select * fromtable for update;//锁行记录、行锁 ----别人没法delete或Update,但可以insert

行锁锁的是修改,不是查询,一旦开始读取(查询),便不能进行delete,等全部读取完毕后再继续进行删除操作

Insert不可能产生行锁,数据库没有insert的这个物理行,所以查询时防止插入,要进行锁表

先锁表,再读,锁表所有人都可以进行读(查询)--

锁表后是既不能插入也不能删除的,也不能更改---一般不用,但也是一种可选方案

查询库-----交易库ACID ,即查询库与交易库进行分离


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值