随笔分类 - java多线程编程核心技术
这是学习多线程的第一本书。加油!!!!
要想成为大牛,多线程,分布式,你必须够强!
所以请你加油!
摘要:这本书大致上是看完了,不过第七章结束的匆匆忙忙很不好。 不过好在还是看完了,勉强算吧。 回想这一年,挺感慨的,心里一直谋求着进步,却很难行动起来。 仔细想想确实啊,想一直进步肯定要牺牲自己的业余时间,虽然一点也不排斥学习,但是你得承认瘫起来的感觉很棒。 人啊,真的一点都不能停歇,一旦你歇下来很可能对
阅读全文
摘要:本章主要知识点: 1)线程组的使用 2)如何切换线程状态 3)SimpleDateFormat类与多线程的解决方法 4)如何处理线程异常。 这本书基本来到了终点,其实在第四章来说,核心(基础)的线程知识就已经结束了。 剩下的是一些关于线程方面的应用与场景:比如定时器以及多线程中的单例问题。 而这一章
阅读全文
摘要:目录 1.0立即加载/“饿汉式” 2.0延迟加载/“懒汉式” 3.0使用静态内置类实现单例模式 4.0序列化与反序列化的单例模式实现 5.0使用static代码块实现单例模式 6.0使用enum枚举数据类型实现单例模式 7.0完善使用enum枚举实现单例模式 1.0立即加载/“饿汉式” 立即加载:实
阅读全文
摘要:单例模式使用比较多,而且挺重要的。(如果不自己搭平台的话,就应该只会在面试中用到吧) 虽然自己在设计模式的模块已经总结过单例模式,但是还是有些东西没有摸透,这次通过这篇文章的学习来重新学习(温习)一下。 希望能有更透彻的理解。
阅读全文
摘要:定时器Timer的使用 1.1方法schedule(TimerTask task, Date time)的测试 1.2方法schedule(TimerTask task, Date firstTime, long period)的测试 1.3方法schedule(TimerTask task, lo
阅读全文
摘要:定时器很重要。 上家公司有用的,是用来做定期数据同步的。 以前老同学有用到,曾经就定时器讨论过一次,还给过一次他我关于spring-task的总结。 但是并没有意识到定时器与多线程的关系,或者说,上一次再学定时器的时候,还没有多线程方面的一些铺垫。这次重新学习多线程,再与定时器,相信会对定时器有一个
阅读全文
摘要:第一节使用ReentrantLock类 1.1使用ReentrantLock实现同步:测试1 1.2使用ReentrantLock实现同步:测试2 1.3使用Condition实现等待/同步错误用法与解决 1.4正确使用Condition实现等待/通知 1.5使用多个Condition实现通知部分线
阅读全文
摘要:本章主要是讲解:使用Lock对象也能实现同步效果,而且使用起来更方便。 主要掌握两个方面: ReentrantLock类的使用 ReenTrantReadWriteLock类的使用
阅读全文
摘要:第一节等待/通知机制 1.1不使用等待/通知机制实现线程间的通讯 1.2什么是等待/通知机制 1.3等待/通知机制的实现 1.4方法wait()锁释放与notify()锁不释放 1.5当interrupt()遇到wait()方法 1.6只通知一个线程 1.7唤醒所有线程 1.8方法wait(long
阅读全文
摘要:线程是操作系统中独立的个体,但是这个个体如果不经过处理就不会成为一个整体。 县城间的通信就是成为整体的必用方案之一。 线程通信后,系统间的交互性会更强大,在大大提高CPU效率的同时,还可以使程序员对各线程任务在处理时,进行有效的监督和把控。 核心技术点: 使用wait()/notify()实现线程间
阅读全文
摘要:第一节synchronized同步方法目录 1.1方法内的变量为线程安全的 1.2实例变量非线程安全 1.3多个对象多个锁 1.4synchronized方法与锁对象 1.5脏读 1.6synchronized锁重入 1.7出现异常,锁自动释放 1.8同步不具有继承性 1.1方法内的变量为线程安全的
阅读全文
摘要:目录: 1.1进程、多线程的概念,及线程的优点 1.2多线程的使用 1.3currentThread()方法 1.4isAlive()方法 1.5sleep()方法 1.6getId()方法 1.7停止线程 1.8暂停线程 1.9yield()方法 1.10线程的优先级 1.11守护线程 1.1进程
阅读全文
摘要:过多的代码应该是放在学习中,而笔记的最初目的是为了凝练知识点或者理论点而来的,所有写到现在有点跑偏的感觉。 以后笔记可能就不会出现代码,或者说过多的代码,而是以个人的理解来记录整理的知识点。
阅读全文
摘要:使用synchronized虽然能够避免不同步的现象出现,但是也会出现弊端,比如代码执行时间过长,那么其他线程就必须等待该线程执行完毕释放锁之后才能拿到锁。 面对这种问题可以使用同步代码块来解决。 2.2.1synchronized方法的弊端: 任务类: 工具类: 线程代码1: 线程代码2: 执行代
阅读全文
摘要:由前言: 在第一章已经出现了非线程安全的情况。“非线程安全”其实会发生在多个线程同时对同一个对象中的实例变量进行访问时发生。产生的结果就是脏读(读到被修改过的数据)。 “线程安全”获得的实例变量是经过同步处理的,不会出现脏读的情况。 2.1.1方法内的变量为线程安全: “非线程安全”的问题存在于实例
阅读全文
摘要:本章主要介绍了java多线程中的同步,也就是如何在java语言中写出线程安全的程序。 如何在java语言中解决非线程安全的相关问题。 设计知识点: synchronized对象监视器为Object时的使用。 synchronized对象监视器为Class时的使用。 非线程安全是如何出现的。 关键字v
阅读全文
摘要:第一章的学习已经结束了。 主要是学习了一些基础的线程API操作,了解了线程的一些问题: 线程API操作: currentThread()、getName()、setpriority()、interrupt()、isInterrupted()、interrupted()、suspend()、resum
阅读全文
摘要:在Java中有两种线程,一种为用户线程,一种为守护线程。 守护线程是一种特殊的线程,它具有“陪伴”的含义,当进程中不存在非守护线程时,则守护线程自动销毁。 典型的守护线程就是垃圾回收线程。 当进程中没有线程了,则垃圾回收线程也就没有存在的必要了,自动销毁。 任何一个守护线程,都是JVM中所有的非守护
阅读全文
摘要:在操作系统中,线程是有优先级划分的,优先级较高的线程会得到相对较多的资源。 也就是说CPU会优先执行优先级较高的线程对象中的任务。 设置线程优先级有助于帮“线程规划器”确定下次选择哪一个线程来优先执行。 设置线程的优先级使用setPriority()方法,此方法在JDK的源代码如下: 在java中,
阅读全文
摘要:yield()方法的解释:放弃当前cpu资源,将它让给其他的任务去占用CPU执行时间。但放弃的时间不能确定,有可能刚刚放弃,但马上又获得CPU时间片。 线程代码: 执行代码: 执行结果(第一个为注释版本,第二个为去掉注释): 源码地址:https://github.com/lilinzhiyu/th
阅读全文