java多线程系列1-线程基础概念

线程基础概念

1.CPU核心数和线程数的关系

CPU核心数是指物理上,也就是硬件上存在几个核心,比如双核CPU就是物理上有两个相对独立的CPU核心单元组。
线程数是逻辑上的概念,指模拟出来的CPU核心数。在使用超线程技术前,CPU核心数和线程数是1:1。使用超线程技术后,CPU核心数和线程数可以为1:2。
windows上查询CPU核心数和线程数方法:

  • 打开CMD,输入wmic
  • 输入cpu get *
    命令窗口
    在这里插入图片描述

2.时间片轮转机制

每个进程会被分配一个时间段,称为它的时间片,即它所允许运行的时长。如果时间片内,进程还未执行完,CPU会剥夺给另外一个进程。如果进程在时间片内完成或者阻塞,CPU会立即进行切换。CPU调度会维护一个就绪队列,进程用完它的时间片后,会加入队列尾部。显然,这会引起上引文切换。
时间片设值过短会引起大量上下文切换,降低CPU效率。设值过大,会导致响应变差,用户体验差。时间片以略大于一次典型的交互所需要的时间为宜。

3.进程和线程

进程是资源分配的最小单位,一个进程内部有对个线程,共享进程资源。
线程是CPU调度的最小单位,必须依赖进程存在。

4.并行和并发

并行是同时处理多个事情的能力
并发是单位时间内处理事情的能力。

5.多线程的好处和注意事项

多线程可以更好的利用CPU资源,加快用户相应时间,异步化
多线程共享进程资源会存在冲突,并且可能死锁,启用太多线程,可能导致系统宕机。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值