第一章 并发编程挑战

2023-12-25 15:30:23

第一章 并发编程挑战

序言

并发的目的是为了程序运行的更快,并不是启动更多的线程就能让程序最大限度地并发执行,但是做好并发编程,需要面临一下问题需要去解决,例如:上下文切换、死锁、资源限制问题

问题调整

即使是单核处理器,也能执行多线程代码,是通过cpu给每个线程分配时间片来实现这个机制,多个线程中,每个线程会根据时间片获取执行权,来回切换执行权,这样大大浪费时间

  • 如何避免上下文切换
    无锁并发编程:意思就是让不同的线程处理不同端的数据
    CAS算法:根据进行数据比对,进行更新
    使用最少得线程:比如任务很少,但是还是创建很多线程来处理
    协程:在单线程实现多任务的调度

  • 如何避免死锁
    避免一个线程同时获取多个锁
    避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源
    尝试使用定时锁,使用lock.tryLock

  • 资源限制的挑战
    集群部署
    资源循环利用(线程池)

文章来源:https://blog.csdn.net/GZ946/article/details/135200008
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。