一、线程的基本概念简单的说:线程就是一个程序里不同的执行路径,在同一个时间点上cpu只会有一个线程在执行,Java里的多线程是通过java.lang.Thread类来实现的,每个线程都拥有自己独立的方法栈空间。二、java线程的创建和启动第一种定义线程类实现Runnable接口:Thread myT...
分类:
编程语言 时间:
2015-02-13 22:20:30
阅读次数:
249
使用线程池以获取最佳资源利用率Java 多线程编程论坛中最常见的一个问题就是各种版本的 "我怎么样才可以创建一个线程池?" 几乎在每个服务器应用里,都会出现关于线程池和工作队列的问题。本文中,Brian Goetz 就线程池原理、基本实现和调优技术、需要避开的一些常见误区等方面进行共享。为何要用线程池?有很多服务器应用,比如 Web 服务器,数据库服务器,文件服务器,或者邮件服务器,都会面对处理大...
分类:
编程语言 时间:
2015-02-13 20:01:18
阅读次数:
206
前文中已经提到了,关于多线程的基础知识和多线程的创建。但是如果想要很好的管理多线程,一定要对线程的生命周期有一个整体概念。本节即对线程的一生进行介绍,让大家对线程的各个时段的状态有一定了解。线程的一生的状态过程如下图: 线程会由出生 到运行 再到 死亡。在前文中曾经讲到过(寻找前文请点这里):ja....
分类:
编程语言 时间:
2015-02-13 01:30:08
阅读次数:
253
在做一个 JSR 315 - servlet 规范 3.0 的报告时,我意识到理解异步 servlet 的一个关键点在于首先要理解 Java 中的异步处理机制。有因有果,很快我陷入了执行器(Executor)和执行器服务(ExecutorService)之中 - 因为它们是 Java 的异步处理的关键构件。在本博客中我将就这一主题我对掌握到的东西做一个总结。几个概念任务:定义为一个小的独立的活动,...
分类:
编程语言 时间:
2015-02-12 18:32:58
阅读次数:
159
前文已介绍过多线程的基本知识了,比如什么是多线程,什么又是进程,为什么要使用多线程等等。在了解了软件开发中使用多线程的基本常识后,我们今天来聊聊如何简单的使用多线程。在Java中创建多线程的方式有两种:(1)写一个子类,这个类要继承自Thread类,于此同时这个子类必须要重写Thread类中的run...
分类:
编程语言 时间:
2015-02-11 23:18:57
阅读次数:
229
导读:Java多线程开发给程序带来好处的同时,由于多线程程序导致的问题也越来越多,而且对问题的查找和分析解决对于菜鸟程序原来是是件头疼的事。下面我就项目中使用多线程开发程序过程中遇到的问题做详细的分析和解决思路的分享。本人也属菜鸟,忘大神指点。项目描述:工作中要编写一份程序用于爬取某某网站上的大量图...
分类:
编程语言 时间:
2015-02-10 18:38:45
阅读次数:
215
Semaphore用于保证至多只有确定X条线程同时执行,系统在它们之间进行切换下面是一个使用例子package com.condition;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executor...
分类:
编程语言 时间:
2015-02-08 19:27:25
阅读次数:
151
ExecutorService 创建线程池,线程池可以定义线程的数量future指线程执行后需要返回的结果,结果可以自己定义callable相当于runnablepackage com.condition;import java.util.Random;import java.util.concur...
分类:
编程语言 时间:
2015-02-08 19:23:11
阅读次数:
121
写在前面这篇是Java多线程感悟的第二篇博客,主要讲述的JAVA层面对并发的一些支持。第一篇博客地址为:http://zhangfengzhe.blog.51cto.com/8855103/1607712下一篇博客将介绍线程池和一些同步工具类。目录9.并发内存模型及并发问题概述10.volatile和synchronized原理分析11.Thr..
分类:
编程语言 时间:
2015-02-07 19:09:50
阅读次数:
280