自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Java并行开发笔记7

设置线程池大小     要想正确地设置线程池的大小,必须分析计算环境、资源预算和任务的特性。在部署的系统中有多少个CPU?多大的内存?任务是计算密集型、I/O密集型还是二者皆可?它们是否需要像JDBC连接这样的稀缺资源?如果需要执行不同类别的任务,并且它们之间的行为相差很大,那么应该考虑使用多个线程池,从而使每个线程池可以根据各自的工作负载来调整。    对于计算密集型的任务,在拥...

2014-03-10 21:00:13 81

原创 Java并行开发笔记6.2

shutdownNow的局限性  shutdownNow是强行关闭ExecutorService的,它会尝试取消正在执行的任务,并返回所以已提交但尚未开始的任务,但是我们无法通过常规方法来找出哪些任务已经开始但尚未结束。这意味着我们无法在关闭过程中知道正在执行的任务的状态,除非任务本身会执行某种检查。为此,设计了一个TrackingExecutor类跟踪在关闭之后被取消的任务,getCan...

2014-03-09 11:39:01 80

原创 Java并行开发笔记6

对于持有线程的服务,只要服务的存在时间大于创建线程的方法的存在时间,那么就应该提供生命周期方法。    在下面的程序中给出了一个简单的日志服务示例,其中日志操作在单独的日志线程中执行。产生日志消息的线程并不会将消息直接写入输出流,而是由LogWriter通过BlockingQueue将消息提交给日志线程,并由日志线程写入。这是一种多生产者单消费者(Multiple-Producer,S...

2014-03-09 09:38:22 107

原创 Java并行开发笔记5

不可中断的阻塞:Java.io 包中的同步 Socket/IO。 在服务器应用程序中,最常见的阻塞I/O形式就是对套接字进行读取和写入。虽然InputStream和OutputStream中的read和write等方法都不会响应中断,但通过关闭底层的套接字,可以使得由于执行read或write等方法而被阻塞的线程抛出一个SocketException。Java.io包中的同步I/O。...

2014-03-08 16:04:12 87

原创 Java并行开发笔记4

不可靠的取消操作将把生产者置于阻塞的操作中  class BrokenPrimeProducer extends Thread{ private final BlockingQueue<BigInteger> queue; private volatile boolean cancelled = false; BrokenPrimeProducer...

2014-03-07 22:17:24 106

原创 Java并行开发笔记3.2

  关于页面渲染的不同操作解析:问题:一般地,对HTML文档进行处理时,当遇到文本标签时,将其绘制到图像缓存中。当遇到图像引用时,先通过网络获取它,然后再将其绘制到图像缓存中。      1. 串行地渲染页面元素,即普通的网页页面中图片和文本同时加载public class SingleThreadRenderer{ void renderPage(CharSequ...

2014-03-06 11:40:30 71

原创 Java并行开发笔记3.1

   Runnable和Callable描述的都是抽象的计算任务。这些任务通常是有范围的,即都有一个明确的起始点,并且最终会结束。Executor执行的任务有4个生命周期阶段:创建、提交、开始和完成。由于有些任务可能要执行很长的时间,因此通常希望能够取消这些任务。在Executor框架中,已提交但尚未开始的任务可以取消,但对于那些已经开始执行的任务,只有当它们能响应中断时,才能取消。取...

2014-03-06 10:20:25 73

原创 排序之快速排序

现在在研究一个算法问题,需要用到快速排序,突然之间不会写了,真是尴尬,现在将经典的算法之一:快速排序算法代码整理出来,以便日后学习中快速翻阅到。public static void Sort(int[] arrs,int left,int right){ if(left<right){ int temp = quickSort(arrs, left, right)...

2014-03-05 21:21:32 61

原创 Java并行开发笔记2

可变的Point类@NotThreadSafepublic class MutablePoint{ public int x,y; public MutablePoint(){x=0;y=0;} public MutablePoint(MutablePoint p){ this.x=p.x; this.y=p.y; }...

2014-03-03 15:17:22 89

原创 Java并行开发笔记1

 加锁机制既可以确保可见性又可以确保原子性,而volatile变量只能确保可见性。 当前仅当满足一下所有条件时,才应该使用volatile变量:对变量的写入操作不依赖变量的当前值,或者你能确保只有单个线程更新变量的值。该变量不会与其他状态变量一起纳入不变性条件中。在访问变量时不需要加锁。线程封闭:当访问共享的可变数据时,通常需要使用同步。一种避免使用同步的方式就是...

2014-03-01 16:10:00 107

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除