天天看点

4.1 进程与线程的区别,怎么根据硬件确定你最大创建的线程数(线程池需要考虑);

进程与线程的区别,进程是资源分配的基本单位,线程是cpu调度的基本单位。

创建线程池会指定线程数,这块如何考量?

线程池指定线程数,首先要考量自己的业务是什么样的,是cpu密集型的还是io密集型的,

假设运行应用的机器CPU核心数是N,那CPU密集型的可以先给到N+1,io密集型的可以给到2N去试试。

上面这个只是一个常见的经验做法,具体究竟开多少线程,需要压测才能比较准确地定下来。线程不是说越大越好,

多线程是为了充分利用CPU的资源。如果设置的线程过多,线程大量有上下文切换,这一部分也会带来系统的开销,这就得不偿失了。

/**
 * 更新:
 * 进程是资源分配的基本单位,进程是程序的一次执行过程;
 * 线程是cpu调度的基本单位,一个进程由一个或多个线程组成,
 * 进程之间是相互独立的,但同一进程下的线程有共享的内存空间。
 * 调度和切换:线程上下文切换比进程上下文切换要快得多。
 */