<导航
摘要: 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就 阅读全文
posted @ 2018-08-13 10:19 字节悦动 阅读(161) 评论(0) 推荐(0)
摘要: 在前面一篇文章中已经讲述了在进程和线程的由来,今天就来讲一下在Java中如何创建线程,让线程去执行一个子任务。下面先讲述一下Java中的应用程序和进程相关的概念知识,然后再阐述如何创建线程以及如何创建进程。 一、Java中关于应用程序和进程相关的概念 在Java中,一个应用程序对应着一个JVM实例( 阅读全文
posted @ 2018-08-13 10:05 字节悦动 阅读(165) 评论(0) 推荐(0)
摘要: 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程。当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够融会贯通使用的,需要在实践中不断积累。由于并发肯定涉及到多线程,因此在进入并发编程主题之前,我们先来了解一下进程和线程的由来,这对后面对并发编程的 阅读全文
posted @ 2018-08-12 17:06 字节悦动 阅读(134) 评论(0) 推荐(0)
摘要: 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步 阅读全文
posted @ 2018-08-12 16:41 字节悦动 阅读(146) 评论(0) 推荐(0)
摘要: 虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 一、什么时候会出现线程安全问题? 在单线程中不会出现线程安全问题,而 阅读全文
posted @ 2018-08-11 16:35 字节悦动 阅读(142) 评论(0) 推荐(0)
摘要: 一、线程的状态 在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状态,这个将会有助于后面对Thread类中的方法的理解。 线程从创建到最终的消亡,要经历若干个状态。一般来说,线程包括以下这几个状态:创建(new)、就绪(runnable)、运行(running)、阻塞(block 阅读全文
posted @ 2018-08-08 23:38 字节悦动 阅读(167) 评论(0) 推荐(0)
摘要: volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于v 阅读全文
posted @ 2018-08-07 22:17 字节悦动 阅读(152) 评论(0) 推荐(0)
摘要: 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。 一、final关键字的基本用法 在Java中,final关键字可以用来修饰类、方法和变量(包括成员变 阅读全文
posted @ 2018-08-07 14:58 字节悦动 阅读(82) 评论(0) 推荐(0)
摘要: 一、内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。 1、成员内部类 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形 阅读全文
posted @ 2018-08-07 14:30 字节悦动 阅读(144) 评论(0) 推荐(0)
摘要: static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。 一、static关键字的用途 在《Java编程思想 阅读全文
posted @ 2018-08-06 15:45 字节悦动 阅读(125) 评论(0) 推荐(0)