JAVA线程池管理(一)

  作为一个接触线程不太深的屌丝而言,多线程现在已经是一个不得不去了解的技术点了,单线程系统现在已经无法满足大多数的项目了。而一个程序员是否能够理解并使用多线程应该也算是一个程序员好坏的标准之一。以下是我看一些大神的关于多线程的博客中的一些心得体会。

  1、首先一个进程对应至少一个线程,这个是比较好理解的,进程包含了线程。就比如一条大路,这就是一条进程,而路上行驶的车辆就是线程。

  2、当一个进程有多个用户进行访问的时候,那么这个线程将会开启多条线程。就比如这条路上有很多车正在行驶,那么我们可以把多个车辆看作是多条线程正在这个进程中运作。

  JAVA中实现多线程有Thread类和Runnable接口两种:通过继承Thread类,重写run()方法实现;通过实现Runnable接口,实现run()方法。

  通过实现Runnable接口以后的对象,通过run()方法启动线程;通过继承Thread对象以后的对象,通过start()方法启动线程。

  但是,Thread类和Runnable接口有什么区别呢?我们可以通过查看Thread类的代码可以看到其中一点,Thread类也实现了Runnable接口。

  大多数情况下,如果只想重写 run() 方法,而不重写其他 Thread 方法,那么应使用 Runnable 接口。这很重要,因为除非程序员打算修改或增强类的基本行为,否则不应为该类(Thread)创建子类。(PS:本行引用原文地址:http://mars914.iteye.com/blog/1508429)。

时间: 2024-12-28 21:33:37

JAVA线程池管理(一)的相关文章

java 线程池管理类:Executors

java.util.concurrent类 Executors java.lang.Object   继承者 java.util.concurrent.Executors此类是个工具类,它提供对Executor.ExecutorService.ScheduledExecutorService.ThreadFactory 和 Callable 类的一些实用方法. 此类支持以下各种方法:    * 创建并返回设置有常用配置的ExecutorService的方法.    * 创建并返回设置有常用配置的

java线程池

1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? 1 new Thread(new Runnable() { 2 3 @Override 4 public void run() { 5 // TODO Auto-generated method stub 6 } 7 }).start(); 那你就out太多了,new Thread的弊端如下: a. 每次new Thread新建对象性能差. b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过

java线程池原理及实现方式

线程池的定义 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务.线程池线程都是后台线程 为什么要使用线程池 1.减少在创建和销毁线程上所花的时间以及系统资源的开销 2.在一个 JVM 里创建太多的线程可能会导致系统由于过度消耗内存而用完内存或"切换过度".为了防止资源不足,服务器应用程序需要一些办法来限制任何给定时刻处理的请求数目. 线程池组成部分 1.线程池管理器(ThreadPoolManager):用于创建并管理线程池,包括 创建线程池,销

Java 线程池的原理与实现

最近在学习线程池.内存控制等关于提高程序运行性能方面的编程技术,在网上看到有一哥们写得不错,故和大家一起分享. [分享]Java 线程池的原理与实现 这几天主要是狂看源程序,在弥补了一些以前知识空白的同时,也学会了不少新的知识(比如 NIO),或者称为新技术吧.线程池就是其中之一,一提到线程,我们会想到以前<操作系统>的生产者与消费者,信号量,同步控制等等.一提到池,我们会想到数据库连接池,但是线程池又如何呢? 建议:在阅读本文前,先理一理同步的知识,特别是syncronized同步关键字的用

java线程池分析和应用

比较 在前面的一些文章里,我们已经讨论了手工创建和管理线程.在实际应用中我们有的时候也会经常听到线程池这个概念.在这里,我们可以先针对手工创建管理线程和通过线程池来管理做一个比较.通常,我们如果手工创建线程,需要定义线程执行对象,它实现的接口.然后再创建一个线程对象,将我们定义好的对象执行部分装载到线程中.对于线程的创建.结束和结果的获取都需要我们来考虑.如果我们需要用到很多的线程时,对线程的管理就会变得比较困难.我们手工定义线程的方式在时间和空间效率方面会存在着一些不足.比如说我们定义好的线程

Java线程池使用和分析(二) - execute()原理

相关文章目录: Java线程池使用和分析(一) Java线程池使用和分析(二) - execute()原理 execute()是 java.util.concurrent.Executor接口中唯一的方法,JDK注释中的描述是“在未来的某一时刻执行命令command”,即向线程池中提交任务,在未来某个时刻执行,提交的任务必须实现Runnable接口,该提交方式不能获取返回值.下面是对execute()方法内部原理的分析,分析前先简单介绍线程池有哪些状态,在一系列执行过程中涉及线程池状态相关的判断

JAVA线程池应用的DEMO

在做很多高并发应用的时候,单线程的瓶颈已经满足不了我们的需求,此时使用多线程来提高处理速度已经是比较常规的方案了.在使用多线程的时候,我们可以使用线程池来管理我们的线程,至于使用线程池的优点就不多说了. Java线程池说起来也简单,简单说下继承关系: ThreadPoolExecutor extends AbstractExecutorService implements ExecutorService extends Executor 还有一个支持延时执行线程和可以重复执行线程的实现类: Sc

Java线程池介绍

Java线程池介绍 2015-10-24 ImportNew (点击上方公号,可快速关注) 原文:allegro 译文:ImportNew - paddx 链接:http://www.importnew.com/16845.html 根据摩尔定律(Moore’s law),集成电路晶体管的数量差不多每两年就会翻一倍.但是晶体管数量指数级的增长不一定会导致 CPU 性能的指数级增长.处理器制造商花了很多年来提高时钟频率和指令并行.在新一代的处理器上,单线程程序的执行速率确实有所提高.但是,时钟频率

浅聊JAVA 线程池的一般用法

一.为什么要用线程池 1).降低资源消耗,通过重复利用已创建的线程降低线程的创建和销毁造成的消耗. 2).提高响应速度,当任务到达时,任务可以不需要等到线程创建就能立即执行. 3).提高线程的可管理性,线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控. 二.注意 1).需要对线程池原理了如指掌. 三.线程的常见用法 1).New Thread. 2).Thread Pool. 四.New Thread 常见用法 new  thr