浅谈线程与线程池应用场景
什么是线程 简述: 线程是操作系统能够进行调度的最小单位。它运行于进程中。进程将资源整合在一起,以供线程使用。 为什么要有线程 创建线程的开销远小于进程 进程和线程的区别 1. 线程共享创建它的进程的地址空间;过程有它们自己的。地址空间 2. 线程可以直接访问其进程的数据;进程有自己的父进程数据段的副本。 3.线程可以直接与进程中的其他线程通信;进程必须使用进程间通信来与同级进程通信 4. 新线程很容易创建;新的进程需要父进程的复制。 5. 线程可以对同一进程的线程进行相当大的控制;流程只能对子流程进行控制。6. 主线程的更改(取消、优先级更改等)可能会影响进程中其他线程的行为;对父进程的更改不会影响子进程。 不同进程间是充满敌意的,彼此是抢占,竞争cpu的关系;例如:酷狗会和mysql抢占资源。 不同线程之间是数据共享的是合作关系,一个线程可以访问另外一个线程的内存地址 为何要用多线程(线程对比进程的好处) 1.多线程共享一个进程的地址空间。线程之间数据共享 2.线程比进程更轻量级,线程比进程更容易创建并且可以撤销。创建线程耗时是进程的十分之一到百分之一 3.如果使用多线程是cpu密集型的,那么不能获得性能上的增加,但是如果线程处理大量I/O操作,多线程可以节约时间,加快程序执行的速度 4.在多cpu的系统中(现在电脑多为多cpu),为了最大限度利用多核