第一章 并发编程挑战
2023-12-25 15:30:23
序言
并发的目的是为了程序运行的更快,并不是启动更多的线程就能让程序最大限度地并发执行,但是做好并发编程,需要面临一下问题需要去解决,例如:上下文切换、死锁、资源限制问题
问题调整
即使是单核处理器,也能执行多线程代码,是通过cpu给每个线程分配时间片来实现这个机制,多个线程中,每个线程会根据时间片获取执行权,来回切换执行权,这样大大浪费时间
-
如何避免上下文切换
无锁并发编程:意思就是让不同的线程处理不同端的数据
CAS算法:根据进行数据比对,进行更新
使用最少得线程:比如任务很少,但是还是创建很多线程来处理
协程:在单线程实现多任务的调度 -
如何避免死锁
避免一个线程同时获取多个锁
避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源
尝试使用定时锁,使用lock.tryLock -
资源限制的挑战
集群部署
资源循环利用(线程池)
文章来源:https://blog.csdn.net/GZ946/article/details/135200008
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!