语言 | 是否原生语言支持多线程 | 实现模型 | 原理简述 |
Java | 是 | Runnable和Thread | java运行时会启动JVM,JVM启动意味着多线程,因为JVM一定会启动主线程和垃圾处理机制,所以是多线程。 java实现多线程的两种方式:实现Runnable接口,继承Thread类。 |
Go | 是 | goroutine和channel | goroutine本质是用户态的线程,编程简单,结构清晰,轻量,系统开销小,可以轻易创建上百万个,而线程和进程一次性最多不超过1万个。 channel是协程之间相互通信的信道,它类似于消息队列,既可在协程之间传递消息,也可以控制协程的执行。 |
PHP | 否 | Swoole | 除了异步IO的支持之外,Swoole 为PHP 多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大简化多进程并发编程的工作。 |
Java/Go/PHP 并发编程对比
最新推荐文章于 2023-08-09 16:17:12 发布