JAVA线程基础知识

120 阅读1分钟
  • 进程

    进程是指系统中一个正在运行程序,程序一旦运行就是一个进程 进程是系统进行资源分配的独立实体,且每个进程拥有独立的地址空间 线程可以拥有多个线程,每个线程使用所属进程的栈空间

  • 线程

    线程是进程的一个实体,是进程的一条执行路径 线程是CPU独立运行和独立调度的基本单位

  • 线程创建方式

    继承 Thread 类 实现 Runable 接口 通过Callable和Future创建线程

  • 线程Sleep、Yield、Join

    sleep 线程休眠,当前线程暂停一段时间,让出CPU给其他线程运行,调用sleep方法不会释放锁 【running -> timedwaiting-> runable】 yield 线程让步,当前线程让出CPU给相同优先级的其他线程运行; yeild方法不hi阻塞线程,而是让线程重回就绪状态,进入等待队列与其他线程一起争夺CPU。 所以可能出现yeild方法调用之后继续运行的情况;调用yeild方法不会释放锁 【running -> runable ->? running】 join 等待线程结束,意思是如果在主线程中调用该方法(子线程t2,t2.joint())就会让主线程休眠, 等到调用该join方法的线程(t2)的run方法执行完毕之后,继续运行主线程。 本质是对Object类的wait方法进行包装。 【running-> waiting/timedwaiting-> t2执行完毕 -> runable】

  • jvm中线程状态迁移图解