java多线程的深入浅出
- java多线程
- 线程的创建
- 继承Thread类
- 实现Runnable接口
- 使用ExecutorService、Callable、Future实现有返回结果的多线程(也就是使用了ExecutorService来 管理前面的三种方式)//todo。
- 如何停止一个线程
- 使用退出标识 是线程的run方法完整的执行一次流程之后正常终止线程
- stop 废弃方法强制中断线程(不推荐)
- 使用interrupt方法中断线程。 和使用退出标识差不多 但是如果使用了一些方法 sleep wait等等方法 会抛出InterruptedException异常 而且需要在catch中 修改共享变量的状态
- 常用方法
- Thread.sleep(毫秒) 使线程休眠多少毫秒
- yield() 让出处理器时间 下次谁抢到不一定
- join() 使一个线程强行插入运行
- start() 启动线程
- volatile关键字
一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:- 保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他 线程来说是立即可见的,volatile关键字会强制将修改的值立即写入主存。
- 禁止进行指令重排序。
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-duo-xian-cheng-de-shen-ru-qian-chu/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。