为什么我就是看不懂java并发?
Java的多线程并发,如果需要系统的了解,那么就要将以下几个方面进行了解,包括:
1)线程的六大状态的转换:知道这个就能从原理上了解线程,那么在做多线程编程时,才能更加了解。
2) Java提供了一些线程池,你得了解这些线程池适用于哪些场景,现在基本都不需要自己写线程池了,都用Java自带的。比如:
第一种:Executors.newCacheThreadPool():
可缓存线程池:先查看池中有没有以前建立的线程,如果有,就 reuse.如果没有,就建一个新的线程加入池中,缓存型池子通常用于执行一些生存期很短的异步型任务
第二种:Executors.newFixedThreadPool(int n):
创建一个可重用固定个数的线程池,以共享的无界队列方式来运行这些线程。
第三种:Executors.newScheduledThreadPool(int n):
创建一个定长线程池,支持定时及周期性任务执行
第四种:Executors.newSingleThreadExecutor():
创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序执行。
3)同时Java对于多线程的争抢资源,提供了一些解决办法,比如:synchronized、ReetranLock
基于以上问题,我们写了如下几篇文章进行了详细解释,还包括代码实战,供大家学习:Java:线程的六大状态、基于代码实战的线程创建及六个常用方法
Java并发编程:基于代码实战的4种线程池和缓冲队列BlockingQueue
Java:线程并发问题、基于代码实战的4种锁机制及多线程协作编程
Java:重入锁ReentranLock详解、代码实战、与Synchronized对比
京东的一道A、B线程面试题:两个线程循环顺序打印A、B(有代码)
以上文章,可以通过关注“互联网IT技术”头条号,即可阅读。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有