多线程
李勇杰Charles
nothing
展开
-
线程池原理
个人理解:线城池就像施工队,施工队里有基本人数限制,比如一般队里有10个人,最多不超过20人,当有新的工程来的时候,如果队里有8个人,而且都在工作,那就在找一个人来干,如果8个人里有人没活干就交给那个人即可.如果已经有了10个人又有工程了,那就把工程接下来放到计划里,如果工程多到计划完成不了了就再找人来干,如果超过20人了,那就让让任务等着,告诉现在完成不了那么多....原创 2019-06-19 11:04:45 · 290 阅读 · 1 评论 -
多线程总结(一)
多线程基础为什么要使用多线程程,提高资源利用率,让原来串行的代码并行执行提高效率.使用多线程继承Thread类或者实现Runnable接口线程安全:简单理解多线程情况下无论怎样执行和单线程执行结果是一样的,就是线程安全的,如果数据变的不一样了就不是线程安全的了常用方法currentThread() //当前正在执行的线程isAlive() //判断当前线程是否处于活动状态 已经...原创 2019-06-16 19:53:53 · 221 阅读 · 2 评论 -
多线程总结(二)
synchronized监视器监视对象synchronized监视器监视类线程安全问题volatilesynchronized方法什么时候用synchronized ,有线程安全问题的时候用,什么时候有线程安全问题?多线线程访问同一个共享变量的时候.同步方法方法内部的变量不是共享变量所以不会有线程安全问题实例变量非线程安全,多个线程共用一个实例变量就会有这个问题,解决办法是在...原创 2019-06-16 20:21:52 · 241 阅读 · 2 评论 -
多线程问题总结
死锁问题死锁检测jps -l // 列出所有java线程jstack -l xxxx // 查看要检测线程的堆栈信息JConsole 图形化界面检测死锁jvisualvm //图形化监控界面,可以直接看出死锁死锁避免避免一个线程同时获取多个锁避免一个线程在锁内占用多个资源定时锁 定时释放锁参考博客参考博文2线程顺序执行问题多个线程顺序执行,可以让一个执行完了再执行另...原创 2019-06-18 11:18:15 · 252 阅读 · 1 评论 -
多线程重排序问题
为什么要重排序?根据程序顺序规则:在不改变程序运行结果前提下,尽可能提高并行度.也就是为了提高性能改变代码的执行顺序.什么样的代码不会重排序?数据依赖的数据,比如后面的代码执行需要用到前面的代码, 简单说两个操作其中如果有一个操作是读操作者两个操作具有数据依赖性存在数据依赖性的操作不会重排序重排序遵守什么规则?as-if-serial:不管怎么排序,结果不能改变不存在数据依赖的可...原创 2019-06-18 11:25:19 · 681 阅读 · 2 评论