java多线程的深入浅出

  • java多线程
    • 线程的创建
    1. 继承Thread类
    2. 实现Runnable接口
    3. 使用ExecutorService、Callable、Future实现有返回结果的多线程(也就是使用了ExecutorService来 管理前面的三种方式)//todo。
    • 如何停止一个线程
    1. 使用退出标识 是线程的run方法完整的执行一次流程之后正常终止线程
    2. stop 废弃方法强制中断线程(不推荐)
    3. 使用interrupt方法中断线程。 和使用退出标识差不多 但是如果使用了一些方法 sleep wait等等方法 会抛出InterruptedException异常 而且需要在catch中 修改共享变量的状态
    • 常用方法
    1. Thread.sleep(毫秒) 使线程休眠多少毫秒
    2. yield() 让出处理器时间 下次谁抢到不一定
    3. join() 使一个线程强行插入运行
    4. start() 启动线程
    • volatile关键字
      一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:
      1. 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他 线程来说是立即可见的,volatile关键字会强制将修改的值立即写入主存。
      2. 禁止进行指令重排序。
        volatile不是原子性操作什么叫保证部分有序性?
        当程序执行到volatile变量的读操作或者写操作时,在其前面的操作的更改肯定全部已经进行,且结果 已经对后面的操作可见;在其后面的操作肯定还没有进行;

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。邮件至 wcfinyourheart@163.com

文章标题:java多线程的深入浅出

本文作者:wcf

发布时间:2020-05-11, 14:39:02

最后更新:2020-05-11, 16:57:32

原始链接:http://1007638786.github.io/2020/05/11/java%E5%A4%9A%E7%BA%BF%E7%A8%8B%E7%9A%84%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BA/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏