![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
老猫1226
我不停的擦拭手中的利剑,不是因为我喜欢它,也不是因为它能带来安全,只是因为,每当下一次冲锋的号角响起时,我能够迅速拔出,纵横厮杀,直至战斗结束,不让自己倒下。
生活在这样的时代,与其被迫上场,心怀恐惧,不如主动征伐,加入时代的滚滚大潮当中,去见识一下时代的风采,写下自己的故事。
展开
-
线程间使用wait()和notify()协作可能造成潜在死锁
在并发编程中,有时候需要使任务彼此之间可以协作,这里举一个存在问题的例子,看上去执行正确,但实际有潜在的死锁。当线程使用notify()/wait()或notifyAll()/wait()进行协作时,在wait()的一方可能会错失notify()/notifyAll()的信号,而一直处于wait()中造成死锁。假设有T1和T2两个线程,T1是通知T2的线程,这两个线程使用下面的方式...转载 2019-04-08 17:30:37 · 1595 阅读 · 0 评论 -
多线程基本介绍(理论)
什么是线程线程与进程相似,是一个比进程更小的执行单位。一个进程在其执行过成功可以产生多个线程。同类的多个线程共享同一块内存空间和一组系统资源,多以系统在产生一个县城,或是各个线程之间切换的时候,负担要比进程小很多,正因如此,线程也被称为轻量级进程。什么是多线程多线程就是多个线程同时运行或交替运行。单核CPU的话是顺序执行,也就是交替运行。多核CPU的话,每个CPU有自己的运算器,多以在...原创 2019-04-02 15:39:18 · 505 阅读 · 0 评论 -
深入理解线程池ThreadPoolExecutor
概述使用线程池技术可以降低资源的消耗,提高响应速度和线程的可重复利用性 当提交一个新任务到线程池后,线程池首先会判断核心线程池(corePoolSize)里的线程是否都在执行任务,如果不是则创建一个新的工作线程来执行任务。如果核心线程池corePoolSize的线程都被占用在执行任务,线程判断工作队列是否已满,如果工作队列没有满:则将新提交的任务存储到工作队列中,如果工作队列已满:判断线程池...转载 2019-04-02 15:31:34 · 238 阅读 · 0 评论 -
线程和线程池
关于线程和线程池的学习,我们可以从以下几个方面入手:第一,什么是线程,线程和进程的区别是什么第二,线程中的基本概念,线程的生命周期第三,单线程和多线程第四,线程池的原理解析第五,常见的几种线程池的特点以及各自的应用场景一、线程,程序执行流的最小执行单位,是行程中的实际运作单位,经常容易和进程这个概念混淆。那么,线程和进程究竟有什么区别呢?首先,进程是一个动态的过程,是一个活...转载 2019-03-19 16:11:48 · 538 阅读 · 0 评论 -
线程的5种状态详解
Java中的线程的生命周期大体可分为5种状态。1.新建(NEW):新创建了一个线程对象。2.可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。3.运行(RUNNING):可运行状态(runnable)的线程获得了cpu 时间片(timeslic...转载 2018-08-23 11:02:42 · 239149 阅读 · 30 评论