(接第一篇)Java 多线程 编程 教程

Runnable接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定义一个名为run()的无参数方法。void run().

此外,Runnable为非Thread子类提供了一种激活方式。通过实例化某个Thread实例并将自身作为运行目标,就可以运行实现Runnable的类而无须创建Thread的子类。

4、定时器TimerTask

TimerTask是一种特殊的线程,用来为Timer安排一次执行或者重复执行的任务。他实现了Runable接口,是一个抽象类

public abstract class TimerTask extends Object implements Runnable

她本身没有实现run函数,因此需要子类来实现它。

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class TestTimerTask extends TimerTask{
	public void run(){
		System.out.println(new Date());
	}
        //每隔1秒,打印时间
	public static void main(String[] args){
		Timer timer = new Timer();
		TestTimerTask task = new TestTimerTask();
		timer.schedule(task,1000,1000);

	}
}

定时器任务与线程不同,它是定时执行的线程,因此不能够直接使用start()来启动它,而需要使用一个特殊的类Timer来启动它。Timer是一个工具,用来安排在后台线程中执行的任务。可以安排任务执行一次,或者定期重复执行。

对Timer对象最后的引用完成后,并且所有未处理的任务都已经执行完毕后,计时器的任务执行线程会正常终止,并且成为垃圾回收的对象,但是这可能需要花费很长时间。所以想要快速终止计时器的任务执行线程,那么调用计时器的cancle方法即可。void cancle();

Timer运行定时器的方式有如下几种:

  • 安排在指定的时间执行指定的任务 void schedule(TimerTask task,Date time)
  • 安排指定的任务在指定的时间开始进行重复的固定延迟执行    void schedule(TimerTask task,Date firstTime,long period);
  • 安排在指定延迟后执行指定的任务    void schedule(TimerTask task,long delay);

5、使用线程组。

线程是可以被组织的,Java中每个线程都是线程组的成员,线程组把多个线程集成为一个对象,通过线程组可以同时对其中的多个线程进行操作,如启动一个线程组的所有线程等。Java的线程组通过ThreadGroup类实现。

ThreadGroup类用来管理一组线程,包括线程的数目、线程之间的关系、线程正在执行的操作,以及线程将要启动或终止时间等。线程组还可以包含线程组。

使用线程组的好处是,可以对一组线程进行整体操作,可用的操作函数包括

  • resume();//恢复执行该线程组的所有处理
  • stop();//停止该线程组中的所有处理
  • suspend();//挂起该线程组的所有处理
  • destroy();//撤销该线程组和它的所有子线程
时间: 2024-08-25 08:25:00

(接第一篇)Java 多线程 编程 教程的相关文章

Java 多线程 编程 教程

多线程编程的含义:将程序任务分成几个并行的子任务,特别是在网络编程中,很多功能都是要并发执行的.本节课将从线程的概念.开发方法及运行来讲解. 线程的概念:包括进程和线程的区别.线程的概念.运行状态和优先级 线程的开发方法:继承Thread和实现Runnable.定时器TimberTask以及线程组ThreadGroup和线程池 线程的运行:线程的启动.停止.休眠.挂起.同步机制 一.线程的概念 1.进程与线程的区别 a)进程.大多数操作系统中都可以创建多个进程.每当启动一个程序,它可以为即将开始

Java 多线程 编程 教程 线程的运行与控制

在多个线程同时运行时,就存在多个线程之间的调度控制.资源分配等.本节就来讲解线程使用中的一系列控制命令和使用方法 线程的启动start().join()与停止stop() 线程的休眠sleep().挂起yield 线程的同步synchronized 线程的同步锁机制:wait().notify()和notifyAll() start()启动线程,当线程创建之后,利用start方法启动线程.此外还可以利用join方法让线程立即执行 sleep()让当前线程暂停一段时间之后继续执行.sleep()方

《Java多线程编程核心技术》推荐

写这篇博客主要是给猿友们推荐一本书<Java多线程编程核心技术>. 之所以要推荐它,主要因为这本书写得十分通俗易懂,以实例贯穿整本书,使得原本抽象的概念,理解起来不再抽象. 只要你有一点点Java基础,你就可以尝试去阅读它,相信定会收获甚大! 博主之前网上找了很久都没完整pdf电子版的,只有不全的试读版,这里博主提供免费.清晰.完整版供各位猿友下载: http://download.csdn.net/detail/u013142781/9452683 刚刚已经提到,<Java多线程编程核

第12篇-JAVA 多线程

第12篇-JAVA 多线程 每篇一句 :不要只看到艰难,要看艰难后面的胜利 初学心得: 敢于尝试,就等于你已经向成功迈出了第一步 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-20| JAVA 多线程 ] 1.进程与线程 1.什么是进程 程序是指令和数据的有序的集合,其本身没有任何运行的含义,是一个静态的概念 进程是一个具有一定独立功能的程序,一个实体 几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程 当一个程序运行时,内部可

Java多线程编程详解

线程的同步 由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题.Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问. 由于我们可以通过 private 关键字来保证数据对象只能被方法访问,所以我们只需针对方法提出一套机制,这套机制就是 synchronized 关键字,它包括两种用法:synchronized 方法和 synchronized 块. 1. synchronized 方法:通过在方法声明中加入 synch

JAVA读书推荐----《深入分析Java Web技术内幕》--《java多线程编程核心技术》--《大型网站技术架构 核心原理与案例分析》-《Effective Java中文版》

(1)  首先推荐的不是一本书,而是一个博客,也是我们博客园另外一位博友java_my_life. 目前市面上讲解设计模式的书很多,虽然我前面讲了看书是最好的,但是对设计模式感兴趣的朋友们,我推荐的是这个博客.这位博友的设计模式讲得非常非常好,我认为90%的内容都是没有问题且很值得学习的,其讲解设计模式的大体路线是: 1.随便开篇点明该设计模式的定义 2.图文并茂讲解该设计模式中的结构 3.以详细的代码形式写一下该种设计模式的实现 4.补充内容 5.讲解该设计模式的优缺点 对于一个设计模式我们关

Java多线程编程模式实战指南(二):Immutable Object模式--转载

本文由本人首次发布在infoq中文站上:http://www.infoq.com/cn/articles/java-multithreaded-programming-mode-immutable-object.转载请注明作者: 黄文海 出处:http://viscent.iteye.com. 多线程共享变量的情况下,为了保证数据一致性,往往需要对这些变量的访问进行加锁.而锁本身又会带来一些问题和开销.Immutable Object模式使得我们可以在不使用锁的情况下,既保证共享变量访问的线程安

Java多线程编程基础之线程对象

在进入java平台的线程对象之前,基于基础篇(一)的一些问题,我先插入两个基本概念. [线程的并发与并行] 在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent).而在多CPU系统中,可以让两个以上的线程同时运行,这种可以同时让两个以上线程同时运行的方式叫做并行(parallel). 在上面包括以后的所有论述中,请各位朋友谅解,我无法用最准确的词语来定义储

Java多线程编程中Future模式的详解&lt;转&gt;

Java多线程编程中,常用的多线程设计模式包括:Future模式.Master-Worker模式.Guarded Suspeionsion模式.不变模式和生产者-消费者模式等.这篇文章主要讲述Future模式,关于其他多线程设计模式的地址如下:关于其他多线程设计模式的地址如下:关于Master-Worker模式的详解: Java多线程编程中Master-Worker模式的详解关于Guarded Suspeionsion模式的详解: Java多线程编程中Guarded Suspeionsion模式