首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Go 语言并发编程系列(一)—— 多进程、多线程与协程的引入

    在原生 PHP 中并没有并发的概念,所有的操作都是串行执行的、同步阻塞的,这也是很多人诟病 PHP 性能的原因,但是不支持并发编程的好处也是显而易见的:保证了 PHP 的简单性,开发者不必考虑并发引入的线程安全,也不需要在编程时权衡是否需要通过加锁来保证某个操作的原子性,也没有线程间通信问题,鱼和熊掌不可得兼,你不可能既要上手简单又要高性能,实际上,90%以上公司的业务和场景根本对性能没有那么高的要求,传统的 Nginx + PHP-FPM 完全以胜任了,如果非要在 PHP 中实现异步和并发编程,推荐使用 Swoole 扩展来解决(实际上,Swoole 实现并发编程的协程功能正是借鉴了 Go 语言的协程实现机制)。

    02

    Go语言中有没有结构化并发?

    什么是结构化并发?日常开发中我们编写的最多就是多线程程序,服务器端应用更是如此,传统的方式都是依靠着操作系统提供的1:1线程方式进行请求处理这对于管理和复用线程有很多挑战,如果一个普通线程大小2MB那么开启1000个线程,几乎是无法完成的,并且管理这些线程的状态也是很复杂的。今天这篇文章要介绍的是结构化并发,就是为解决并发编程中线程并发任务管理,传统的方式非常容易造成管理混乱。结构化并发解决的问题就是对统一的任务和统一作用域下的任务进行管理,可以统一启动和统一关闭,如果读过我之前的Linux进程组那篇文章的话,就完全可以理解是什么意思了,文章地址:Linux 进程树。

    04
    领券