上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 24 下一页

2018年7月9日

JAVA多线程提高六:java5线程并发库的应用_线程池

摘要: 前面我们对并发有了一定的认识,并且知道如何创建线程,创建线程主要依靠的是Thread 的类来完成的,那么有什么缺陷呢?如何解决? 一、对比new Threadnew Thread的弊端 a. 每次new Thread新建对象性能差。 b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占 阅读全文

posted @ 2018-07-09 22:40 pony1223 阅读(654) 评论(0) 推荐(0) 编辑

2018年7月5日

JAVA多线程提高五:原子性操作类的应用

摘要: 当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2。因为A和B线程在更新变量i的时候拿到的i都是1,这就是线程不安全的更新操作,通常我们会使用synchronized来解决这个问 阅读全文

posted @ 2018-07-05 08:27 pony1223 阅读(743) 评论(0) 推荐(0) 编辑

2018年7月2日

JAVA多线程提高四:多个线程之间共享数据的方式

摘要: 多个线程访问共享对象和数据的方式 如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做。 如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,有如下两种方式来实现这些Runnable对象之间的数据共享: 阅读全文

posted @ 2018-07-02 22:38 pony1223 阅读(2435) 评论(0) 推荐(1) 编辑

2018年7月1日

JAVA多线程提高三:线程范围内共享变量&ThreadLocal

摘要: 今天我们学习的是如何在线程自己的范围内达到变量数据的共享,而各个线程之间又是互相独立开来,各自维护的,即我们说的ThreadLocal的作用。 一、概念 可以将每个线程用到的数据与对应的线程号存放到一个map集合中,使用数据时从这个集合中根据线程号获取对应线程的数据,就可以实现线程范围内共享相同的变 阅读全文

posted @ 2018-07-01 22:55 pony1223 阅读(690) 评论(0) 推荐(0) 编辑

JAVA多线程提高一:传统线程技术&传统定时器Timer

摘要: 前面我们已经对多线程的基础知识有了一定的了解,那么接下来我们将要对多线程进一步深入的学习;但在学习之前我们还是要对传统的技术进行一次回顾,本章我们回顾的则是:传统线程技术和传统的定时器实现. 一、传统线程技术 1.创建方式 1、继承thread类 2、实现Runnable接口 3、实现Callabl 阅读全文

posted @ 2018-07-01 22:40 pony1223 阅读(520) 评论(0) 推荐(0) 编辑

JAVA多线程提高二:传统线程的互斥与同步&传统线程通信机制

摘要: 本文主要是回顾线程之间互斥和同步,以及线程之间通信,在最开始没有juc并发包情况下,如何实现的,也就是我们传统的方式如何来实现的,回顾知识是为了后面的提高作准备。 一、线程的互斥 为什么会有线程的互斥?可以想银行取款的问题,如果不做监控,多个人同时针对一个存折取钱的时候就会出现钱不对的问题,下面我们 阅读全文

posted @ 2018-07-01 22:40 pony1223 阅读(498) 评论(0) 推荐(0) 编辑

JAVA多线程基础学习三:volatile关键字

摘要: Java的volatile关键字在JDK源码中经常出现,但是对它的认识只是停留在共享变量上,今天来谈谈volatile关键字。 volatile,从字面上说是易变的、不稳定的,事实上,也确实如此,这个关键字的作用就是告诉编译器,只要是被此关键字修饰的变量都是易变的、不稳定的。那为什么是易变的呢?因为 阅读全文

posted @ 2018-07-01 22:11 pony1223 阅读(872) 评论(1) 推荐(1) 编辑

JAVA多线程基础学习二:synchronized

摘要: 本篇主要介绍Java多线程中的同步,也就是如何在Java语言中写出线程安全的程序,如何在Java语言中解决非线程安全的相关问题,没错就是使用synchronized. 一、如何解决线程安全问题? 一般来说,是如何解决线程安全问题的呢?基本上所有的并发模式在解决线程安全问题时,都采用“序列化访问临界资 阅读全文

posted @ 2018-07-01 11:33 pony1223 阅读(988) 评论(0) 推荐(1) 编辑

2018年6月24日

JAVA多线程基础学习一:基础知识

摘要: 我们知道多线程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧。 一、线程基本概念 1 线程:进程中负责程序执行的执行单元(执行路径)线程本身依靠程序进行运行线程是程序中的顺序控制流,只能使用分配给程序的资源和环境2 进程:执行 阅读全文

posted @ 2018-06-24 18:31 pony1223 阅读(1321) 评论(2) 推荐(1) 编辑

2018年6月21日

JVM学习十三:JVM之堆分析

摘要: 本章进入JVM学习的最后一节,此节主要分析的是堆,因为堆是JAVA程序中最常用使用到的地方,因此对这个地方有必要进行下细致的分析特别是OOM,言归正传,进入正文。 一、内存溢出(OOM)的原因 在JVM中,有哪些内存区间? 堆溢出 堆溢出 堆溢出 永久区 生成大量的类 public static v 阅读全文

posted @ 2018-06-21 08:12 pony1223 阅读(754) 评论(1) 推荐(0) 编辑

上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 24 下一页

导航