线程与线程池基本理解

1. 用多线程的目的是什么?

充分利用cpu资源,并发做多件事

2.线程什么时候会让出cpu

阻塞时   wait ()

sleep

3.线程是什么

一条代码执行流,完成一组代码的执行

这一组代码,称为一个任务

4.cpu的工作是什么

执行代码

流程:任务----装入--->线程----运送---->cpu(执行代码)

5.线程是不是越多越好

(1)每一个线程需要以一个操作系统来支持, 创建线程时间+销毁时间 > 执行任务时间,则不合算

(2)线程占用堆空间,操作系统占用系统内存,一个线程默认最大栈大小时1m,需要从系统内存中分配,线程过多会造成内存不足

(3)操作系统需要频繁切换线程上下文,影响性能

6.如何正确使用多线程

多线程目的:成分利用cpu并发做事

线程的本质:将代码送给cpu执行

用合适数量的卡车不断运送代码即可

这合适数量的线程就构成了线程池

有任务要执行时,将他放入线程池中。池中的一个线程将任务送给cpu执行

线程池原理

接受任务  ,放入仓库

工作线程从仓库取任务,执行

仓库为空时,线程进入阻塞状态

任务用什么表示

runnable    普通的小汽车,负责将任务送到cpu处理

callable       赛车(观察者模式)

仓库用什么

blockingqueue    阻塞队列 ,线程安全的

在队列为空时的获取阻塞,在队列满时放入阻塞

猜你喜欢

转载自www.cnblogs.com/fbjtcp/p/10926753.html
今日推荐