在Java并发包中有这样一个包,java.util.concurrent.atomic,该包是对Java部分数据类型的原子封装,在原有数据类型的基础上,提供了原子性的操作方法,保证了线程安全。下面以AtomicInteger来分析一下其实现过程。/**
* Atomically increments by one the current value.
*
* @return the upda...
分类:
编程语言 时间:
2014-08-18 22:04:52
阅读次数:
309
本文是学习网络上的文章时的总结,感谢大家无私的分享。
1、在某些情况下,我们需要等待线程的终结。例如,我们可能会遇到程序在执行前需要初始化资源。在执行剩下的代码之前,我们需要等待线程完成初始化任务。为了达到此目的,我们使用Thread类的join()方法。当前线程调用某个线程的这个方法时,它会暂停当前线程,直到被调用线程执行完成。
2、Java提供2种形式的join()方法:
Join(...
分类:
编程语言 时间:
2014-08-15 14:38:09
阅读次数:
312
Java多线程基础:进程和线程之由来 在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程。当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够融会贯通使用的,需要在实践中不断积累。由于并发肯定涉及到多线程,因此在进入并发编程主题之前,我们先来了解一....
分类:
编程语言 时间:
2014-08-14 13:13:08
阅读次数:
284
本文是学习网络上的文章时的总结,感谢大家无私的分享。
1、Thread类的sleep方法,可以使线程睡眠。此方法接收一个整数作为参数,表示线程暂停运行的毫秒数。在调用sleep方法后,当时间结束时,JVM会安排他们CPU时间,线程会继续按指令执行。
另一种可能是使用一个有TimeUnit列举元素的sleep方法,使用线程类的sleep方法让当前线程睡眠,但是它接收的参数单位后...
分类:
编程语言 时间:
2014-08-13 22:32:27
阅读次数:
333
本文是学习网络上的文章时的总结,感谢大家无私的分享。
1、如果线程实现的是由复杂算法分成的一些方法,或者他的方法有递归调用,那么我们可以用更好的机制来控制线程中断。为了这个Java提供了InterruptedException异常。当你检测到程序的中断并在run()方法内捕获,你可以抛这个异常。
2、InterruptedException异常是由一些与并发API相关的Java方法,如sl...
分类:
编程语言 时间:
2014-08-12 19:08:24
阅读次数:
281
本文是学习网络上的文章时的总结,感谢大家无私的分享。
1、一个多个线程在执行的Java程序,只有当其全部的线程执行结束时(更具体的说,是所有非守护线程结束或者某个线程调用System.exit()方法的时候),它才会结束运行。有时,你需要为了终止程序而结束一个线程,或者当程序的用户想要取消某个Thread对象正在做的任务。
2、Java提供中断机制来通知线程表明我们想要结束它。中断机制的特...
分类:
编程语言 时间:
2014-08-11 15:00:32
阅读次数:
257
本文是学习网络上的文章时的总结,感谢大家无私的分享。
Thread类的对象中保存了一些属性信息能够帮助我们辨别每一个线程,知道它的一些信息
ID:每个线程的独特标示;
Name:线程的名称;
Priority:线程对象的优先级。优先级别在1-10之间,1是最低级,10是最高级。
Status:线程状态。在java中,线程只有6种状态:new,runnable,blocked,wait...
分类:
编程语言 时间:
2014-08-08 21:31:41
阅读次数:
336
package?thread;
import?java.util.ArrayList;
import?java.util.List;
import?java.util.concurrent.atomic.AtomicInteger;
/**
?*?@author??changxiangxiang
?*?@date?2014年8月6日?下午3:25:12
?...
分类:
编程语言 时间:
2014-08-06 19:35:52
阅读次数:
260
本来这节内容是要到后面来说的,因为最近在弄并发的问题,推荐一本书《java并发编程实战》,深入的讲解了多线程问题的。本人最近也刚好在看这本书,还不错的~
多线程的相关概念,就不用说了的,自己可以去网上查找,有一大堆关于它的讲解~
先来看看买票的程序:
package me.javen.thread.one;
public class TicketDemo {
public static ...
分类:
编程语言 时间:
2014-08-04 17:37:37
阅读次数:
243
1. AQS简介
AQS是Java并发类库的基础,其提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。该同步器(以下简称同步器)利用了一个int来表示状态,期望它能够成为实现大部分同步需求的基础。使用的方法是继承,子类通过继承同步器并需要实现它的方法来管理其状态,管理的方式就是通过类似acquire和release的方式来操纵状态。然而多线程环境中对状态的操纵...
分类:
编程语言 时间:
2014-08-04 14:22:37
阅读次数:
295