多线程系列
多线程基础以及多线程相关知识点
机智的豆子
现在学习编程还在挣扎阶段,需要有恒心才能坚持下来。
展开
-
重入锁、读写锁、悲观锁和乐观锁、CAS无锁原理
一、重入锁锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized(重量级) 和 ReentrantLock(轻量级)等等 ) 。这些已经写好提供的锁为我们开发提供了便利。重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响。在JAVA环境下 ReentrantLock 和synchronized 都是 ...原创 2020-03-24 22:11:20 · 688 阅读 · 0 评论 -
线程池4种常用方式实现以及自定义线程池原理
1.什么是线程池Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。第一:降低资源消耗。 通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。 当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。 线程是稀缺资源,如果无限制地创建,不仅会消耗系统...原创 2020-03-13 02:12:16 · 1706 阅读 · 1 评论 -
Synchronized和Volatile的区别
1.多线程三大特性?原子性、可见性、有序性(1)什么是原子性? 即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。一个很经典的例子就是银行账户转账问题:比如从账户A向账户B转1000元,那么必然包括2个操作:从账户A减去1000元,往账户B加上1000元。这2...原创 2020-03-11 22:47:33 · 208 阅读 · 0 评论 -
并发编程之多线程线程安全(二)
1.什么是线程安全?1.1为什么有线程安全问题? 当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。案例:需求现在有100张火车票,有两个窗口同时抢火车票,请使用多线程模拟抢票效果。public class ...原创 2019-09-08 23:29:35 · 402 阅读 · 0 评论 -
并发编程之多线程基础(一)
线程与进程区别 每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。 使用线程可以把占据时间...原创 2019-09-03 23:19:57 · 111 阅读 · 0 评论