Java-多线程
文章平均质量分 91
langgufu314
这个作者很懒,什么都没留下…
展开
-
synchronized的使用
synchronized(class),synchronized(this),synchronized(object):JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class l...原创 2014-07-02 11:44:44 · 90 阅读 · 0 评论 -
volatile失效,慎重使用volatile关键字
volatile关键字相信了解Java多线程的读者都很清楚它的作用。volatile关键字用于声明简单类型变量,如int、float、boolean等数据类型。如果这些简单数据类型声明为volatile,对它们的操作就会变成原子级别的。但这有一定的限制。例如,下面的例子中的n就不是原子级别的:package mythread; public class JoinThread ...原创 2014-11-26 16:10:56 · 1024 阅读 · 1 评论 -
java synchronized类锁,对象锁详解(转载)
觉得还不错 留个记录,转载自http://zhh9106.iteye.com/blog/2151791 在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法。因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识。 java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置...原创 2014-11-05 14:56:31 · 337 阅读 · 0 评论 -
synchronized和wait()/notify(),一些实用的关键性知识(转载 重)
public void run() { while (true) { try { Object msg = removeQueue(); if (msg == null) { //Thread.sleep(100L); syn...原创 2014-11-04 11:11:44 · 238 阅读 · 0 评论 -
Lock,synchronized,Atomic 三者的区别大体描述(转)
1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不释放,B将一直等下去,不能被中断 如果 使用ReentrantLock,如果A不释放,可以使B在等待了足够...原创 2014-11-04 11:04:52 · 327 阅读 · 0 评论 -
Spring,jdk定时任务的几种实现以及任务线程是串行还是并行执行(转载)
近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍。一.分类从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerT...原创 2014-03-31 17:20:52 · 443 阅读 · 0 评论 -
使用CompletionService批处理任务(线程池阻塞线程)
如果你向Executor提交了一个批处理任务,并且希望在它们完成后获得结果。为此你可以保存与每个任务相关联的Future,然后不断地调用timeout为零的get,来检验Future是否完成。这样做固然可以,但却相当乏味。幸运的是,还有一个更好的方法:完成服务(Completion service)。CompletionService整合了Executor和BlockingQueue的功能。...原创 2014-08-11 17:36:20 · 755 阅读 · 0 评论 -
Java多线程-工具篇-BlockingQueue
<!--done-->Java多线程-工具篇-BlockingQueue 前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括...原创 2014-08-08 16:58:23 · 73 阅读 · 0 评论 -
JAVA进阶----ThreadPoolExecutor机制(转载)
原文地址:http://825635381.iteye.com/blog/2184680ThreadPoolExecutor机制 一、概述 1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务; 2、Executors方法提供的线程服务,都是通过参数设置来实现不同的线程池机...原创 2015-02-10 16:59:55 · 234 阅读 · 0 评论 -
web应用程序和它之中的线程问题(转载)
原文地址:http://coach.iteye.com/blog/854996Web应用程序中调度器的启动和关闭问题我们知道静态变量是ClassLoader级别的,如果Web应用程序停止,这些静态变量也会从JVM中清除。但是线程则是JVM级别的,如果你在Web 应用中启动一个线程,这个线程的生命周期并不会和Web应用程序保持同步。也就是说,即使你停止了Web应用,这个线程依旧是活跃的...原创 2015-02-09 16:19:50 · 238 阅读 · 0 评论 -
守护线程,用户线程
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) Daemon的作用是为其他线程的运行提供便利服务,比如垃圾回收线程就是一个很称职的守护者。User和Daemon两者几乎没有区别,唯一的不同之处就在于虚拟机的离开:如果 User Thread已经全部退出运行了,只剩下Daemon Thread存在了,虚拟机也就退出了。 因为没有了被守护者...原创 2015-02-09 16:15:08 · 172 阅读 · 0 评论 -
Java线程的5个技巧(转)
Java线程有哪些不太为人所知的技巧与用法?萝卜白菜各有所爱。像我就喜欢Java。学无止境,这也是我喜欢它的一个原因。日常工作中你所用到的工具,通常都有些你从来没有了解过的东西,比 方说某个方法或者是一些有趣的用法。比如说线程。没错,就是线程。或者确切说是Thread这个类。当我们在构建高可扩展性系统的时候,通常会面临各种各 样的并发编程的问题,不过我们现在所要讲的可能会略有不同。从本文中你将会...原创 2015-02-09 15:53:18 · 112 阅读 · 0 评论 -
正确理解ThreadLocal(转载)
原文地址:http://www.iteye.com/topic/103804ThreadLocal是在Thread类之外实现的一个功能(java.lang.ThreadLocal), 但它会为每个线程分别存储一份唯一的数据。正如它的名字所说的,它为线程提供了本地存储,也就是说你所创建出来变量对每个线程实例来说都是唯一的。和线程 名,线程优先级类似,你可以自定义出一些属性,就好像它们是存储在...原创 2015-02-09 15:51:26 · 126 阅读 · 0 评论 -
Java主线程如何等待子线程执行结束(转)
工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了.一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线程的流程, 往往需要让主线程指定后, 等待子线程的完成. 这里有几种方式.站在 主线程的角度, 我们可以分为主动式和被动式.主动式指主线主动去检测某个标志位, 判断子线程是否已经完成....原创 2014-07-29 11:32:38 · 503 阅读 · 0 评论 -
java.util.concurrent介绍 (转载)
本文转载自:http://www.cnblogs.com/sarafill/archive/2011/05/18/2049461.htmljava.util.concurrent 包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构...原创 2014-12-11 16:51:41 · 107 阅读 · 0 评论