线程基础

  • 进程与线程
image.png

同一时间CPU只能执行一个程序,因此程序间会有间断性。但是这个时间非常短,几乎感觉不到,只有在开启了很多个程序之后,会出现明显的卡顿

  • 并行与并发

并行:两个任务同时运行---多核CPU,一个核处理程序A,另一个核处理程序B
并发:两个任务同时请求运行,但是处理器一次只能接收一个任务,因为会安排两个任务轮流执行,由于CPU时间片运行时间短,就会感觉两个任务在同时运行

时间片轮转:
假设分配给程序A有执行时间3s,程序A有2个线程:线程A和线程B,则A和B会抢时间片执行,若A首先抢到,且A里面的任务完成需要5s,则在3s之后,时间片会结束,轮询到别的程序,等到再次轮询到A的时候,从上次执行处继续执行

  • 休眠:释放CPU时间片

若线程A执行一次,休眠了1s,则剩下的2s会分配给B执行

  • join:加入线程,并让加入的线程执行指定时间或执行完毕

  • 中断

  • 守护线程:当进程中没有用户线程时,JVM退出
    即若主线程执行完毕,守护线程未执行完毕,则JVM退出,守护线程不执行了

  • 线程同步:多个线程在同一时间段内只能有一个线程执行指定代码

  • 线程安全:线程安全问题都是由全局变量及静态变量引起的,方法中的局部变量分配在栈空间,每个线程有私有的栈空间。因此访问是线程安全的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 写在前面的话: 这篇博客是我从这里“转载”的,为什么转载两个字加“”呢?因为这绝不是简单的复制粘贴,我花了五六个小...
    SmartSean阅读 4,920评论 12 45
  • 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要...
    嘟爷MD阅读 7,395评论 21 272
  • 进程的概念 进程是操作系统上的概念,操作系统是直接驱动、管理计算机硬件的一款管理软件,它的运行帮助我们利用计算机硬...
    伶俐ll阅读 814评论 0 3
  • 早上清醒以后第一件事就是给两位妈妈发短信,祝愿母亲节快乐。 婆婆(淡定简练型)回:收到。妈妈(肉麻发嗲型)回:我的...
    丢了朵朵阅读 852评论 1 2
  • 我知道我有再多的怨言 你揉揉我的头 我还是只想抱你
    熬出欢喜阅读 199评论 0 2

友情链接更多精彩内容