+
80
-

php中协程与java的线程哪个效率更高?

php中协程与java的线程哪个效率更高?


网友回复

+
0
-

多协程的效率肯定比多线程更高。

多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些,例如php-fpm,所以出现了多线程。

一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程; 资源分配给进程,同一进程的所有线程共享该进程的所有资源; 处理机分给线程,即真正在处理机上运行的是线程; 线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。 协程,是一种比线程更加轻量级的存在,协程不是被操作系统内核所管理,而完全是由程序所控制(也就是在用户态执行)。这样带来的好处就是性能得到了很大的提升,不会像线程切换那样消耗资源。 协程在子程序内部是可中断的,然后转而执行别的子程序,在适当的时候再返回来接着执行。 协程的特点在于是一个线程执行 极高的执行效率:因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显;

不需要多线程的锁机制:因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。

另外php有协程,java也有协程的。

我知道答案,我要回答