Thread and Net
SnakeMoving
喜欢的东西可以多付出一点!
展开
-
JAVA多线程与并发学习总结
原文来自:http://www.cnblogs.com/yshb/archive/2012/06/15/2550367.html1. 计算机系统使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行;当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。缓存一致性:多处理器系统中,因为共享同一主内存,当多个转载 2017-09-29 12:49:48 · 211 阅读 · 0 评论 -
Java线程(九):Condition-线程通信更高效的方式
接近一周没更新《Java线程》专栏了,主要是这周工作上比较忙,生活上也比较忙,呵呵,进入正题,上一篇讲述了并发包下的Lock,Lock可以更好的解决线程同步问题,使之更面向对象,并且ReadWriteLock在处理同步时更强大,那么同样,线程间仅仅互斥是不够的,还需要通信,本篇的内容是基于上篇之上,使用Lock如何处理线程通信。 那么引入本篇的主角,Condition,Con转载 2017-11-14 17:50:55 · 233 阅读 · 0 评论 -
ThreadLocal
原文来自:http://blog.csdn.net/lufeng20/article/details/24314381#reply可以去看看原文的评论,指出了不足,转载只为日后方便寻找ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具转载 2017-11-14 17:46:36 · 238 阅读 · 0 评论 -
Java线程(十一):Fork/Join-Java并行计算框架
并行计算在处处都有大数据的今天已经不是一个新鲜的词汇了,现在已经有单机多核甚至多机集群并行计算,注意,这里说的是并行,而不是并发。严格的将,并行是指系统内有多个任务同时执行,而并发是指系统内有多个任务同时存在,不同的任务按时间分片的方式切换执行,由于切换的时间很短,给人的感觉好像是在同时执行。 Java在JDK7之后加入了并行计算的框架Fork/Join,可以解决我们系统中大数据计算的性能问题转载 2017-11-08 20:37:40 · 218 阅读 · 0 评论 -
Java线程(八):锁对象Lock-同步问题更完美的处理方式
Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题,我们拿Java线程(二)中的一个例子简单的实现一下和sychronized一样的效果,代码如下:[java] view plain copy print?转载 2017-10-30 15:51:54 · 253 阅读 · 0 评论 -
ConcurrentMap.putIfAbsent(key,value) 用法讨论
原文来自:http://wxl24life.iteye.com/blog/1746794先看一段代码:Java代码 public class Locale { private final static Map map = new HashMap(); public static Locale getInstance(St转载 2017-11-08 09:43:53 · 256 阅读 · 0 评论 -
Java Timer和Timertask
Timer和TimerTask可以做为实现线程的第三种方式,前两中方式分别是继承自Thread类和实现Runnable接口。 Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。转载 2017-10-30 15:01:14 · 194 阅读 · 0 评论 -
java并发编程--Executor框架
Eexecutor作为灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程解耦开发,基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务的线程相当于消费者,并用Runnable来表示任务,Executor的实现还提供了对生命周期的支持,以及统计信息收集,应用程序管理机制和性能监视等机制。 1.Exexctor简介转载 2017-10-30 14:39:28 · 237 阅读 · 0 评论 -
Java线程(七):Callable和Future
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务转载 2017-10-28 14:31:00 · 203 阅读 · 0 评论 -
【Java并发之】BlockingQueue
原文来自:http://blog.csdn.net/suifeng3051/article/details/48807423本文主要讲的是并发包中涉及到的集合,关于普通集合,请参考【java 集合概览】一、什么是BlockingQueueBlockingQueue即阻塞队列,从阻塞这个词可以看出,在某些情况下对阻塞队列的访问可能会造成阻塞。被阻塞的情况主要有如下两种:1转载 2017-10-27 23:30:00 · 222 阅读 · 0 评论 -
【深入理解JVM】:Java内存模型JMM
原文来自:http://blog.csdn.net/u011080472/article/details/51337422多任务和高并发的内存交互多任务和高并发是衡量一台计算机处理器的能力重要指标之一。一般衡量一个服务器性能的高低好坏,使用每秒事务处理数(Transactions Per Second,TPS)这个指标比较能说明问题,它代表着一秒内服务器平均能响应的请求数,而TPS转载 2017-10-06 01:08:38 · 226 阅读 · 0 评论 -
如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例
原文来自:http://www.importnew.com/16453.htmlwait, notify 和 notifyAll,这些在多线程中被经常用到的保留关键字,在实际开发的时候很多时候却并没有被大家重视。本文对这些关键字的使用进行了描述。在 Java 中可以用 wait、notify 和 notifyAll 来实现线程间的通信。。举个例子,如果你的Java程序中有两个线转载 2017-10-05 00:31:49 · 832 阅读 · 0 评论 -
理解 Thread.Sleep 函数
原文来自:http://www.cnblogs.com/ILove/archive/2008/04/07/1140419.html我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2008-4-7 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 200转载 2017-10-01 15:27:03 · 313 阅读 · 0 评论 -
Java Thread.yield详解
http://blog.csdn.net/dabing69221/article/details/17426953前言: 前几天复习了一下多线程,发现有许多网上讲的都很抽象,所以,自己把网上的一些案例总结了一下!一. Thread.yield( )方法:使当前线程从执行状态(运行状态)变为可执行态(就绪状态)。cpu会从众多的可执转载 2017-10-01 15:10:09 · 289 阅读 · 0 评论 -
Java中Synchronized的用法
《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念synchronized.synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}转载 2017-11-14 18:21:43 · 231 阅读 · 0 评论