多线程相关的问题
摘要:1、线程创建的方式有哪几种 1、继承Thread类;2、实现Runnable接口;3、实现Callable接口;4、使用Executor工具类创建线程池;5;使用ThreadPoolExecutor工具类创建线程池。 2、线程的5种状态流转 线程的状态如下状态:新建、就绪、运行、【阻塞】(等待(时间
阅读全文
解读TheadLocal
摘要:一致性问题: 1、多个主体无法对同一份数据达成共识; 2、包括分布式一致性问题和并发问题; 3、特点是场景多问题复杂难以察觉,需要严密的思考甚至数学论证。 一致性问题的解决办法: 1、排对(例如:锁,互斥量,管程,屏障); 2、投票(例如:Paxos,Raft) 以上两个都有额外开销,避免的方式可以
阅读全文
Java高并发之Synchronized
摘要:Synchronized的作用: 能够保证在同一时刻最多只有一个线程执行该段代码,以达到保证并发安全的效果。 并发编程的地位: 关键字,被java原生支持,实现互斥的基本手段、是研究高并发的基础。 不使用并发手段会有什么样的后果: 例如i++的操作,如果不使用同步的话会线程不安全。 Synchron
阅读全文
多线程的内存可见性
摘要:两条规定: 1、线程对共享变量所有的操作都必须在自己的工作内存中进行,不能直接从主内存中读取。 2、不同线程之间无法直接访问其他线程工作内存中的变量,线程间变量值的传递需要通过主内存来进行。 voltaile实现内存的可见性 深入来说是通过加入内存屏障和禁止重排序优化来实现的 1、对volatile
阅读全文