多线程并发编程(二)

系统变慢

当前我们的服务器软件系统主要应用多线程技术实现多任务处理,并完成对很多用户的并发请求处理。简单来说,我们的一个web应用相当于操作系统中的一个进程,该进程中可以创建很多线程,而每个线程处理一个用户请求。在处理多个并发用户请求时。由于系统资源的有限性,从而在执行过程中引发运行时资源的竞争,系统为保证共享资源的线程安全,于是有了加锁的解决方案,即同一时刻只允许一个线程访问共享资源。锁会引起线程阻塞,那么就会出现线程排队等待锁的情况,线程无法并行执行,系统响应速度就会变慢。此外 I/O 操作也会引起阻塞,对数据库连接的获取也可能会引起阻塞。基于以上这些场景,当并发的线程数越多,等待连接的时间也越多,从 web 请求者角度看,响应时间变长,系统变慢

应用崩溃

被阻塞的线程越多,占据的系统资源也越多,这些被阻塞的线程既不能继续执行,也不能释放当前已经占据的资源,在系统中一边等待一边消耗资源,如果阻塞的线程数超过了某个系统资源的极限,就会导致系统宕机,应用崩溃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值