进程与线程的区别,进程是资源分配的基本单位,线程是cpu调度的基本单位。
创建线程池会指定线程数,这块如何考量?
线程池指定线程数,首先要考量自己的业务是什么样的,是cpu密集型的还是io密集型的,
假设运行应用的机器CPU核心数是N,那CPU密集型的可以先给到N+1,io密集型的可以给到2N去试试。
上面这个只是一个常见的经验做法,具体究竟开多少线程,需要压测才能比较准确地定下来。线程不是说越大越好,
多线程是为了充分利用CPU的资源。如果设置的线程过多,线程大量有上下文切换,这一部分也会带来系统的开销,这就得不偿失了。
/**
* 更新:
* 进程是资源分配的基本单位,进程是程序的一次执行过程;
* 线程是cpu调度的基本单位,一个进程由一个或多个线程组成,
* 进程之间是相互独立的,但同一进程下的线程有共享的内存空间。
* 调度和切换:线程上下文切换比进程上下文切换要快得多。
*/