• 多线程的学习01


    什么是线程

    线程是为了解决并发编程引入的机制,线程相比进程来说更轻量。

    创建线程比创建进程——开销更小

    销毁线程比销毁进程——开销更小

    调度线程比调度进程——开销更小

    进程包含线程,同一进程里的若干线程之间,共享着内存资源和文件描述符表

    每个线程被独立调度执行,每个线程都有自己的状态/优先级/上下文/记账信息

    进程是操作系统资源分配的基本单位

    线程是操作系统调度执行的基本单位 

    Thread常见的构造方法

    Thread()                创建线程对象

    Thread(Runnable target)                            使用Runnable对象创建线程对象

    Thread(String name)                                  创建线程对象,并命名

    Thread(Runnable target,String name)        使用Runnable对象创建线程对象,并命名

    把t设置为守护进程/后台进程。此时进程的结束与否和 t 无关了。

    在真正调用start之前,调用t.isAlive就是false.调用start之后,isAlive就是true

    isAlive是在判断,当前系统里面的这个线程是不是针对有了。

    另外,如果内核里线程把run干完了,此时线程销毁。pcb随之释放。但是Thread t 这个对象还不一定被释放,此时 isAlive 也是 false。

     中断一个线程

    中断的意思是:不是让线程立即就停止,而是通知线程,你应该要停止了,是否真的停止,取决于线程这里具体的代码写法。

    1、使用标志位来控制线程是否静止

    2、使用Thread自带的标志位进行判定

     

    interrupt会做两件事

    1、把线程内部的标志为(boolean)给设置为true

    2、如果线程在进行sleep,就会触发异常,把sleep唤醒

    但是sleep在唤醒的时候,还会做一件事,把刚才设置的这个标志位在设置会false(清空了标志位) 

    等待一个线程

    线程是一个随机调度的过程,等待线程,就是在控制两个线程的结束顺序。

  • 相关阅读:
    java毕业设计游戏交易平台Mybatis+系统+数据库+调试部署
    代理模式详细讲解
    Postman 最被低估的功能,90%的人不知道!
    JDK 17新更新的 14个新特性
    Vue3.2组件如何封装,以弹窗组件的封装为例
    vite项目、vue-cli项目环境配置
    Shell 脚本编程——变量和运算符
    测试OpenCvSharp库的模板匹配功能
    Hadoop内hive之间,hive与DB、ES等之间数据交互的问题与解决方案
    Java---SSM---SpringMVC(2)
  • 原文地址:https://blog.csdn.net/m0_67247641/article/details/134068171