中线程和进程的区别?Java开发
进程是操作系统对一个正在运行的程序的抽象。在一个系统上可以同时运行多个进程,而每个进程都好像在独占地使用硬件。而并发运行,则是说一个进程的指令和另一个进程的指令是交错执行的。在大多数系统中,需要运行的进程数是多于可以运行他们的CPU个数的。传统的系统在一个时刻只能执行一个程序,而先进的多核处理器同时能够执行多个程序。无论是在单核系统还是多核系统中,一个CPU看上去都像是在并发地执行多个进程,这个通过处理器在进程间切换来实现的。操作系统实现这种交错执行的机制成为上下文切换。进程也是操作系统进行资源分配的最小单位。
线程,进程间的切换和通信存在较大的开销,为了能并行执行更多的任务,提升系统的效率,才引入了线程的概念。线程间的切换开销比进程间的切换开销小的多。线程是CPU调度的最小单位,它是进程的一部分,只能由进程创建。一个进程有用很多个线程,这些线程共享进程的资源和程序代码。
尽管通常我们认为一个进程只有单一的控制流,但是在现代系统中,一个进程实际上可以由多个称为线程的执行单元组成,每个线程都运行在进程的上线文中,并共享同样的代码和全局数据。由于网络服务器对并行处理的需求,线程成为越来越重要的编程模型,因为多线程之间比多进程之间更容易共享数据,也因为线程一般来说都比进程更高效。当有多处理器可用的时候,多线程也是一种使程序可用更快运行的方法。

浙公网安备 33010602011771号