多线程和多线程
什么是线程
线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。
进程(process)和线程(thread)是操作系统的基本概念,主要出现在CPU中
理解
有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程(Thread)
线程和进程有什么区别?
线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。
PHP如何实现多线程?
pcntl_fork
stream_socket_client
扩展:pthreads
对比
多进程
多线程
协程
创建
fork
pthread_create
go
回收
wait
pthread_join
-
通信方式
IPC进程间通信
数据同步/锁
array/channel
资源消耗
进程切换开销
进程切换开销
非常低
并发能力
数百
数千
50万
编程难度
困难
非常困难
容易
注意事项
多线程模式致命的缺点就是任何一个线程挂掉都可能直接造成整个进程崩溃,因为所有线程共享进程的内存。
[进程与线程的一个简单解释](
Last updated