多线程Thread1

简介: 快速学习多线程Thread1

多线程

1.为什么要用多线程,或者所生活中有哪些多线程
    程序的顺序结构是,做完一件事之后才能做下一件事
    但是有些事情是需要同时完成的,呼吸-吃饭-思考
    1.1 进程-任务-task
        每一个进程表示一个操作系统的任务,每个任务可能会有很多子任务
    1.2 调度机制:抢占式调度
         吃饭,人很多,但是窗口很少,只要前面的人打完饭了,下一个就立马去打饭
    1.3 吃饭-吸气-思考
        时间线(时间片)
        三个人同时上厕所这是一个任务,每个人都是一个子任务
        从老板的角度来看,这个事件(三个人上厕所任务),完成的时间是8:15-8:40
        宏观上和微观上的有区别
                8:15  8:20  8:25  8:30  8:35  8:40
        张三      1            1
        李四             1           1
        王五                                1     1
        抢占式调度容易造成数据紊乱,比如这个一个没有完成可能会被另外一个拉出来
    1.4 一个任务中的多个子任务,会导致堆和栈的数据被共享,进而引发线程不安全的问题
        共享变量被修改的时候容易出现问题
2.java是如何实现多线程的
    同时有多个程序,一个时间片多个任务在执行,但一个时间点只能有一个任务
        1、通过继承Thread类实现
        2、实现runnable接口
        runable 太简单了,Thread封装了很多类
        3、两种方法异同点:
            a、使用接口的话,可以达到多继承的方法,避免业务单一化
            b、使用接口的话,程序会更加健康,代码可以被多个线程共享,代码和数据个更加独立
            c、后面使用线程池,默认的参数类型也是Runnable
            d、但是及成果使用Thread 功能会更加多样化
            为什么 Thread t=new Thread(new Runnable)
                1、语法定义
                2、runnable 的功能方法少,这样能通过这种方法继承更多方法
3、两种方法的实名周期
4、常见的Thread的方法
    4、1 sleep()
    4、2 interrupt():此方法专门打断sleep,提前醒来
    4、3 线程的优先级
        优先级高的线程,只能说明他有更多的可能,不能保证一定优先获取时间片
    4、4 new Thread(Runable的实现类实例,Thread的重命名)
        优先级的默认值 5,范围1-10
    4、5 可以获得线程的ID
         getID
    4、6 可以获得当前的线程
        Thread.currentThread();
    4、7 获得名字
        getName()
相关文章
|
6月前
|
监控 安全 算法
Thread入门与线程方法详解及多线程安全
Thread入门与线程方法详解及多线程安全
22 0
|
2天前
|
存储 机器学习/深度学习 C++
thread(线程)
**Lua中的协同程序(coroutine)类似线程,有独立栈和局部变量,但它们不能并行,只能单次运行,通过挂起切换。** \n\n**Userdata是自定义数据类型,允许存储C/C++的任意数据到Lua,常用于struct和指针。**
|
12月前
|
安全 Java 程序员
线程(Thread)
🌼什么是线程 🌼Java 线程在代码中的体现 🌷线程对象 🌷在 Java 代码中创建线程 🌷启动线程 🌷代码演示创建线程 🌼多线程下各个线程之间执行先后的随机性 🌷什么情况下,子线程会被先执行 🌷什么情况下,会出现线程调度 🌼线程安全 🌷线程之间的数据共享 🌷演示什么是线程不安全 🌷线程不安全的原因 🌷原子性 🌷系统角度分析线程不安全的原因
62 0
|
资源调度 Java 开发者
Thread 类实现多线程 | 学习笔记
快速学习 Thread 类实现多线程。
Thread 类实现多线程 | 学习笔记
|
安全 Java 调度
Java多线程01—线程的初步理解和基于Thread类创建线程
Java多线程01—线程的初步理解和基于Thread类创建线程
111 0
|
安全 Java API
JAVA多线程Thread
多线程Thread
144 0
JAVA多线程Thread
|
算法 API 调度
C#多线程系列(1): Thread
C#多线程系列(1): Thread
345 0
C#多线程系列(1): Thread
Thread和Runnable实现多线程(一)下
Thread和Runnable实现多线程(一)
100 0
Thread和Runnable实现多线程(一)下
Thread和Runnable实现多线程(一)上
实现多线程,有两种方式,一种是继承 Thread 类,一种是实现 Runnable接口。
161 0
Thread和Runnable实现多线程(一)上
|
自然语言处理 调度
多线程 Thread.yield 方法到底有什么用?
概念 我们知道 start() 方法是启动线程,让线程变成就绪状态等待 CPU 调度后执行。 那 yield() 方法是干什么用的呢?来看下源码。