美文网首页
线程基础

线程基础

作者: perfect_jimmy | 来源:发表于2017-08-28 23:49 被阅读4次
    • 进程与线程
    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退出,守护线程不执行了

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

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

    相关文章

      网友评论

          本文标题:线程基础

          本文链接:https://www.haomeiwen.com/subject/xaendxtx.html