随笔分类 - 线程
摘要:1、volatile关键字只能修饰类变量和实例变量,对于方法参数、局部变量以及实例常量,类常量都不能进行修饰。 class A { private int B;实例变量 static int C;类变量 } 2、CPU的寄存器完成所有的运算操作,CPU指令的执行涉及数据的读取和写入,CPU的处理速度
阅读全文
摘要:/** * 一个完整的线程池应该具备如下要素: * 1、任务队列:用于缓存提交的任务。 * 2、线程数量管理功能:一个线程池必须能够很好的管理和控制线程数量,线程初始数量init, * 线程池自动扩充是的最大线程数量max,在空闲时需要释放线程但是也要维护一定数量的活跃数量 * 或者核心数量core
阅读全文
摘要:本章主要是讲列的加载过程,class文件是如何被JVM加载并且最后得以运行的。 类的加载过程一般分为三个大阶段,加载阶段、连接阶段、初始化阶段 加载阶段:主要负责查找并且加载类的二进制数据文件(class文件)。 连接阶段:连接阶段还可以分为验证、准备、解析阶段。 验证:确保类文件的正确性,clas
阅读全文
摘要:博客博客,我来写博客,可能会有错误。奥利给! 守护线程Deamon,它有啥用。 在《java高并发编程详解》是这样说的: 守护线程是一类比较特殊的线程,一般用于处理一些后台工作,比如JDK的垃圾回收线程。在正常情况下,若JVM中没有一个非守护线程,则JVM的进程会退出。(看到这一句,心里what?*
阅读全文
摘要:区别:进程是操作系统资源分配的基本单位,而线程是进程调度和执行的基本单位 对操作系统来说,一个任务就是一个进程,比如打开一个浏览器就是启动一个浏览器进程,打开 一个qq就启动了一个qq进程,打开一个word就启动一个word进程。就word进程来说,在word里面可以同时进行打字、拼写检查、打印等事
阅读全文
摘要:创建线程经常说有构造一个Thread方法,和实现Runable接口的方法,这种说法不是很严谨。线程的执行单元就是run方法。准确的讲,创建线程只有一种方式那就是构造Thread类,而实现线程的执行单元则有两种方式,第一种是重写Thread的run方法,第二种是实现Runnable接口中的run方法,
阅读全文
摘要:join死主线程跟着死 join()方法的作用,是等待这个线程结束; 也就是说,t.join()方法阻塞调用此方法的线程(calling thread)进入 TIMED_WAITING 状态,直到线程t完成,此线程再继续; 通常用于在main()主线程内,等待其它线程完成再结束main()主线程。
阅读全文
摘要:线程的五个状态 新建,就绪,执行,阻塞,死亡 调用线程的start方法是创建了新的线程,在新的线程中执行。调用线程的run方法是在主线程中执行该方法,和调用普通方法一样 线程死亡的原因: run方法正常退出而自然死亡 线程抛出一个未捕获的异常 直接调用 了该线程的stop方法结束该线程(容易导致死锁
阅读全文
摘要:死锁是多个线程在运行过程中互相竞争资源发生的僵局,若无外力作用,它们都无法推进下去。死亡如风,常伴吾身。窝窝头,嘿嘿! 死锁的四个必要条件 互斥条件:一个资源每次只能被一个进程使用。 请求和保持条件:一个进程因为请求资源而阻塞时,对已获得的资源保持不放。 不剥夺条件:进程已经获得的资源在没有使用完之
阅读全文

浙公网安备 33010602011771号