进程和线程基本概念
1.进程:进程是操作系统中资源分配的基本单位。进程是操作系统对正在运行程序的一种抽象,可以将进程看作程序的一次运行。
2.线程:线程是操作系统中调度执行的基本单位。一个线程是一个“执行流”,每个线程之间都可以按照顺序执行自己的代码,多个线程“同时”执行多份代码。
进程和线程之间的区别
1.一个进程可以包含多个线程。
2…多个进程同时执行时,如果一个进程崩溃,一般不会影响其它进程;而同一个进程内的多个线程之间,如果一个线程崩溃,很可能使得整个进程崩溃。所以多进程要比多线程健壮。
3.进程的上下文切换速度比较慢,而线程的上下文切换速度比较快。
4.进程的创建/销毁/调度开销大,线程的创建/销毁/调度开销相对少很多。
5.同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间。同一进程内的线程共享本进程的资源,但是进程之间的资源是独立的。
多线程
优点
能适当提高程序的执行效率
能适当提高资源的利用率(CPU、内存)
线程上的任务执行完成后,线程会自动销毁
缺点
开启线程需要占用一定的内存空间(默认情况下,每一个线程都占用512KB)
如果开启大量的线程,会占用大量的内存空间,降低程序的性能
线程越多,CPU在调用线程上的开销就越大
程序设计更复杂,比如线程间的通信、多线程的数据共享