![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
文章平均质量分 96
一枚-狗子
这个作者很懒,什么都没留下…
展开
-
Java多线程之如何写出线程安全的程序?
1 如何写出线程安全的程序?答:1.1 这道题想考察什么?答:(1)考察要点●是否对线程安全有初步了解(初级)●是否对线程安全的产生原因有思考;是否知道final、volatile关键字的作用;是否清楚1.5之前JavaDCL为什么有缺陷(中级)●是否清楚的知道如何编写线程安全的程序;是否对hreadLocal的使用注意事项有认识(高级)(2)题目剖析●如何写出线程安全的程序?●什么是线程安全?如何实现线程安全?2 什么是线程安全?答:本质是可变资源(内存)线程间共享的问题,关键是:可原创 2020-12-05 16:45:40 · 680 阅读 · 0 评论 -
Java多线程之并发编程系列
1 线程基础1.1 详解Thread与Runnable(1)概念(2)学习链接Java基础之详解Thread与Runnable(3)总结1.2 详解2 深入理解synchronized2.1 深入理解synchronized3 Java中的锁3.1 可重入锁4 Java中13个原子操作类5 并发容器5.1 Collections.synchronizedList()5....原创 2019-08-25 12:01:39 · 179 阅读 · 0 评论 -
Java多线程之深入理解synchronized
1 synchronized关键字synchronized翻译为中文的意思是同步的,它是Java中处理线程安全问题常用的关键字,也有人称其为同步锁。2 synchronized到底锁住的是什么(1)synchronized锁住的是对象而非代码,实际保护的是同一个对象的方法调用,确保同时只能有一个线程执行。(2)再具体来说,synchronized锁住的对象有一个锁和一个等待队列,锁只能被一...原创 2019-08-25 17:33:31 · 379 阅读 · 0 评论 -
Java多线程之深入理解队列同步器AbstractQueuedSynchronizer(AQS)
1 AQS介绍AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包下面:AQS是一个用来构建锁和同步器的框架,使用AQS能构造出应用广泛的同步器,比如:ReentrantLock,Semaphore,CountDownLatch,其他的如ReentrantReadWriteLock,SynchronousQue...原创 2019-10-27 10:55:57 · 336 阅读 · 0 评论 -
Java多线程之如何停止一个线程?
1 如何停止一个线程?答:1.1 这道题想考察什么?答:(1)考察要点●是否对线程的用法有了解;是否对线程的stop方法有了解(初级)●是否对线程stop过程中存在的问题有认识;是否熟悉interrupt中断的用法(中级)●是否能解释清楚使用boolean标志位的好处;是否知道interrupt底层的细节(高级)●通过该题目能够转移话题到线程安全,并阐述无误(高级)(2)题目剖析●如何停止一个线程?●官方停止线程的方法被废弃,所以不能直接简单的停止线程?如何设计可以随时被中断而取消的任务原创 2020-11-29 16:35:53 · 2071 阅读 · 0 评论 -
Java多线程之深入理解原子变量
1 什么是原子变量?为什么需要它们呢?对于count++这种操作来说,通常使用synchronized关键字保证原子更新操作,synchronized会保证多线程不会同时更新变量count。但是,使用synchronzied成本太高了,需要先获取锁,最后还要释放锁,获取不到锁的情况下还要等待,还会有线程的上下文切换,这些都需要成本。而Java从Jdk 1.5开始提供了java.util.con...原创 2019-08-25 23:06:44 · 785 阅读 · 0 评论 -
Java多线程之深入理解并发编程基础
1 概念 多进程是指系统能同时运行多个任务(程序)。多线程是指在同一程序中有多个顺序流在执行。例如:在编辑或下载邮件的同时可以打印文件。 我的另一篇文章:Java基础之详解Thread与Runnable1.1 进程与线程区别 进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同。本质的区别在于每个进程拥有独立的内存单元;而线程则共享内存,共享...原创 2016-12-22 20:32:23 · 895 阅读 · 0 评论 -
Java多线程之深入理解线程池
1 基本概念 线程池,就是一个线程的池子,里面有若干线程,它们的目的就是执行提交给线程池的任务,执行完一个任务后不会退出,而是继续等待或执行新任务。 线程池主要由两个概念组成,一个是任务队列,另一个是工作者线程,工作者线程主体就是一个循环,循环从队列中接受任务并执行,任务队列保存待执行的任务。 线程池的概念类似于生活中的一些排队场景,比如在火车站排队购票、在医院排队挂号、在银行排...原创 2018-05-27 00:07:51 · 819 阅读 · 2 评论